int8x8x4_t f_vld4_lane_s8 (int8_t * p, int8x8x4_t v) { int8x8x4_t res; /* { dg-error "lane 8 out of range 0 - 7" "" { xfail arm*-*-* } 0 } */ res = vld4_lane_s8 (p, v, 8); /* { dg-error "lane -1 out of range 0 - 7" "" { xfail arm*-*-* } 0 } */ res = vld4_lane_s8 (p, v, -1); return res; }
void test_vld4_lanes8 (void) { int8x8x4_t out_int8x8x4_t; int8x8x4_t arg1_int8x8x4_t; out_int8x8x4_t = vld4_lane_s8 (0, arg1_int8x8x4_t, 1); }
void test_ld4st4(int8x8x4_t small8, int8x16x4_t big8, int16x4x4_t small16, int16x8x4_t big16, int32x2x4_t small32, int32x4x4_t big32, int64x1x4_t small64, int64x2x4_t big64, void *addr) { vld4_lane_s8(addr, small8, 7); vld4_lane_s16(addr, small16, 3); vld4_lane_s32(addr, small32, 1); vld4_lane_s64(addr, small64, 0); vld4q_lane_s8(addr, big8, 15); vld4q_lane_s16(addr, big16, 7); vld4q_lane_s32(addr, big32, 3); vld4q_lane_s64(addr, big64, 1); vld4_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}} vld4_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}} vld4_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}} vld4_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}} vld4q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}} vld4q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}} vld4q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}} vld4q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}} vst4_lane_s8(addr, small8, 7); vst4_lane_s16(addr, small16, 3); vst4_lane_s32(addr, small32, 1); vst4_lane_s64(addr, small64, 0); vst4q_lane_s8(addr, big8, 15); vst4q_lane_s16(addr, big16, 7); vst4q_lane_s32(addr, big32, 3); vst4q_lane_s64(addr, big64, 1); vst4_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}} vst4_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}} vst4_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}} vst4_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}} vst4q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}} vst4q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}} vst4q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}} vst4q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}} }
int8x8x4_t test_vld4_lane_s8(const void * a1, int8x8x4_t a2) { // CHECK: test_vld4_lane_s8 return vld4_lane_s8(a1, a2, 0); // CHECK: llvm.aarch64.neon.ld4lane.v8i8.p0i8 }