1 /* { dg-do assemble { target { arm*-*-* } } } */
2 /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
3 /* { dg-add-options arm_v8_2a_i8mm } */
4 /* { dg-additional-options "--save-temps" } */
5
6 #include <arm_neon.h>
7
8 /* Unsigned-Signed Dot Product instructions. */
9
usfoo_lane(int32x2_t r,uint8x8_t x,int8x8_t y)10 int32x2_t usfoo_lane (int32x2_t r, uint8x8_t x, int8x8_t y)
11 {
12 /* { dg-error "lane -1 out of range 0 - 1" "" { target *-*-* } 0 } */
13 return vusdot_lane_s32 (r, x, y, -1);
14 }
15
16
usfooq_lane(int32x4_t r,uint8x16_t x,int8x8_t y)17 int32x4_t usfooq_lane (int32x4_t r, uint8x16_t x, int8x8_t y)
18 {
19 /* { dg-error "lane 2 out of range 0 - 1" "" { target *-*-* } 0 } */
20 return vusdotq_lane_s32 (r, x, y, 2);
21 }
22