int8_t test_vdupb_lane_s8(int8x8_t src) { return vdupb_lane_s8(src, 2); // CHECK-LABEL: @test_vdupb_lane_s8 // CHECK: extractelement <8 x i8> %src, i32 2 // CHECK-BE-LABEL: @test_vdupb_lane_s8 // CHECK-BE: [[REV:%.*]] = shufflevector <8 x i8> {{.*}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> // CHECK-BE: extractelement <8 x i8> [[REV]], i32 2 }
wrap_vdupb_lane_s8_1 (int8x8_t a) { int8_t result = vdupb_lane_s8 (a, 1); force_simd (result); return result; }
wrap_vdupb_lane_s8_0 (int8x8_t dummy, int8x8_t a) { int8_t result = vdupb_lane_s8 (a, 0); force_simd (result); return result; }
// CHECK-LABEL: @test_vdupb_lane_s8 int8_t test_vdupb_lane_s8(int8x8_t src) { return vdupb_lane_s8(src, 2); // CHECK: extractelement <8 x i8> %src, i32 2 // CHECK-BE: extractelement <8 x i8> %src, i32 5 }
// CHECK-LABEL: test_vdupb_lane_s8 int8_t test_vdupb_lane_s8(int8x8_t a) { return vdupb_lane_s8(a, 7); // CHECK: {{umov|smov}} {{w[0-9]+}}, {{v[0-9]+}}.b[7] }
// CHECK-LABEL: define i8 @test_vdupb_lane_s8(<8 x i8> %a) #0 { // CHECK: [[VGET_LANE:%.*]] = extractelement <8 x i8> %a, i32 7 // CHECK: ret i8 [[VGET_LANE]] int8_t test_vdupb_lane_s8(int8x8_t a) { return vdupb_lane_s8(a, 7); }
int8x1_t test_vdupb_lane_s8 (int8x16_t a) { return vdupb_lane_s8 (a, 2); }