uint32x1_t test_vdups_lane_u32 (uint32x4_t a) { uint32x1_t res; force_simd (a); res = vdups_laneq_u32 (a, 2); force_simd (res); return res; }
// CHECK-LABEL: test_vdups_laneq_u32 uint32_t test_vdups_laneq_u32(uint32x4_t a) { return vdups_laneq_u32(a, 3); // CHECK: umov {{w[0-9]+}}, {{v[0-9]+}}.s[3] }
// CHECK-LABEL: define i32 @test_vdups_laneq_u32(<4 x i32> %a) #1 { // CHECK: [[TMP0:%.*]] = bitcast <4 x i32> %a to <16 x i8> // CHECK: [[TMP1:%.*]] = bitcast <16 x i8> [[TMP0]] to <4 x i32> // CHECK: [[VGETQ_LANE:%.*]] = extractelement <4 x i32> [[TMP1]], i32 3 // CHECK: ret i32 [[VGETQ_LANE]] uint32_t test_vdups_laneq_u32(uint32x4_t a) { return vdups_laneq_u32(a, 3); }