3
3
4
4
#include <immintrin.h>
5
5
6
- // TODO: PR104848 - ensure the _mm_set_ss/d headers don't implicity promote any integer/fp values.
6
+ // PR104848 - ensure the _mm_set_ss/d headers don't implicity promote any integer/fp values.
7
7
8
8
// CHECK-LABEL: @test_mm_set_ss(
9
9
// CHECK-NEXT: entry:
10
- // CHECK-NEXT: [[VECINIT_I:%.*]] = insertelement <4 x float> poison, float [[NUM:%.*]], i64 0
11
- // CHECK-NEXT: [[CONV_I:%.*]] = tail call float @llvm.experimental.constrained.sitofp.f32.i32(i32 0, metadata !"round.tonearest", metadata !"fpexcept.maytrap") #[[ATTR2:[0-9]+]]
12
- // CHECK-NEXT: [[VECINIT1_I:%.*]] = insertelement <4 x float> [[VECINIT_I]], float [[CONV_I]], i64 1
13
- // CHECK-NEXT: [[VECINIT3_I:%.*]] = insertelement <4 x float> [[VECINIT1_I]], float [[CONV_I]], i64 2
14
- // CHECK-NEXT: [[VECINIT5_I:%.*]] = insertelement <4 x float> [[VECINIT3_I]], float [[CONV_I]], i64 3
15
- // CHECK-NEXT: ret <4 x float> [[VECINIT5_I]]
10
+ // CHECK-NEXT: [[VECINIT3_I:%.*]] = insertelement <4 x float> <float poison, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float [[NUM:%.*]], i64 0
11
+ // CHECK-NEXT: ret <4 x float> [[VECINIT3_I]]
16
12
//
17
13
__m128 test_mm_set_ss (float num )
18
14
{
@@ -21,9 +17,7 @@ __m128 test_mm_set_ss(float num)
21
17
22
18
// CHECK-LABEL: @test_mm_set_sd(
23
19
// CHECK-NEXT: entry:
24
- // CHECK-NEXT: [[VECINIT_I:%.*]] = insertelement <2 x double> poison, double [[NUM:%.*]], i64 0
25
- // CHECK-NEXT: [[CONV_I:%.*]] = tail call double @llvm.experimental.constrained.sitofp.f64.i32(i32 0, metadata !"round.tonearest", metadata !"fpexcept.maytrap") #[[ATTR2]]
26
- // CHECK-NEXT: [[VECINIT1_I:%.*]] = insertelement <2 x double> [[VECINIT_I]], double [[CONV_I]], i64 1
20
+ // CHECK-NEXT: [[VECINIT1_I:%.*]] = insertelement <2 x double> <double poison, double 0.000000e+00>, double [[NUM:%.*]], i64 0
27
21
// CHECK-NEXT: ret <2 x double> [[VECINIT1_I]]
28
22
//
29
23
__m128d test_mm_set_sd (double num )
0 commit comments