@@ -10,8 +10,11 @@ define void @d() {
10
10
; CHECK: vector.body:
11
11
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
12
12
; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[INDEX]], 0
13
+ ; CHECK-NEXT: [[TMP6:%.*]] = load float, ptr null, align 4
14
+ ; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <2 x float> poison, float [[TMP6]], i64 0
15
+ ; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <2 x float> [[BROADCAST_SPLATINSERT]], <2 x float> poison, <2 x i32> zeroinitializer
13
16
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr float, ptr @d, i64 [[TMP0]]
14
- ; CHECK-NEXT: [[TMP2:%.*]] = call <2 x i1> @llvm.is.fpclass.v2f32(<2 x float> zeroinitializer , i32 0)
17
+ ; CHECK-NEXT: [[TMP2:%.*]] = call <2 x i1> @llvm.is.fpclass.v2f32(<2 x float> [[BROADCAST_SPLAT]] , i32 0)
15
18
; CHECK-NEXT: [[TMP3:%.*]] = select <2 x i1> [[TMP2]], <2 x float> zeroinitializer, <2 x float> zeroinitializer
16
19
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr float, ptr [[TMP1]], i32 0
17
20
; CHECK-NEXT: store <2 x float> [[TMP3]], ptr [[TMP4]], align 4
@@ -27,7 +30,7 @@ define void @d() {
27
30
; CHECK-NEXT: [[I:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[I7:%.*]], [[LOOP]] ]
28
31
; CHECK-NEXT: [[I3:%.*]] = load float, ptr null, align 4
29
32
; CHECK-NEXT: [[I4:%.*]] = getelementptr float, ptr @d, i64 [[I]]
30
- ; CHECK-NEXT: [[I5:%.*]] = tail call i1 @llvm.is.fpclass.f32(float 0.000000e+00 , i32 0)
33
+ ; CHECK-NEXT: [[I5:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[I3]] , i32 0)
31
34
; CHECK-NEXT: [[I6:%.*]] = select i1 [[I5]], float 0.000000e+00, float 0.000000e+00
32
35
; CHECK-NEXT: store float [[I6]], ptr [[I4]], align 4
33
36
; CHECK-NEXT: [[I7]] = add i64 [[I]], 1
43
46
%i = phi i64 [ 0 , %entry ], [ %i7 , %loop ]
44
47
%i3 = load float , ptr null , align 4
45
48
%i4 = getelementptr float , ptr @d , i64 %i
46
- %i5 = tail call i1 @llvm.is.fpclass.f32 (float 0 . 0 , i32 0 )
49
+ %i5 = tail call i1 @llvm.is.fpclass.f32 (float %i3 , i32 0 )
47
50
%i6 = select i1 %i5 , float 0 .0 , float 0 .0
48
51
store float %i6 , ptr %i4 , align 4
49
52
%i7 = add i64 %i , 1
0 commit comments