@@ -84,20 +84,20 @@ define double @sumIfVector(ptr nocapture readonly %arr) {
84
84
; SSE-NEXT: [[WIDE_LOAD2:%.*]] = load <2 x double>, ptr [[TMP5]], align 8
85
85
; SSE-NEXT: [[TMP6:%.*]] = fcmp fast une <2 x double> [[WIDE_LOAD]], <double 4.200000e+01, double 4.200000e+01>
86
86
; SSE-NEXT: [[TMP7:%.*]] = fcmp fast une <2 x double> [[WIDE_LOAD2]], <double 4.200000e+01, double 4.200000e+01>
87
- ; SSE-NEXT: [[TMP10 :%.*]] = fadd fast <2 x double> [[VEC_PHI]], [[WIDE_LOAD]]
88
- ; SSE-NEXT: [[TMP11 :%.*]] = fadd fast <2 x double> [[VEC_PHI1]], [[WIDE_LOAD2]]
89
- ; SSE-NEXT: [[PREDPHI]] = select <2 x i1> [[TMP6]], <2 x double> [[TMP10 ]], <2 x double> [[VEC_PHI]]
90
- ; SSE-NEXT: [[PREDPHI3]] = select <2 x i1> [[TMP7]], <2 x double> [[TMP11 ]], <2 x double> [[VEC_PHI1]]
87
+ ; SSE-NEXT: [[TMP8 :%.*]] = fadd fast <2 x double> [[VEC_PHI]], [[WIDE_LOAD]]
88
+ ; SSE-NEXT: [[TMP9 :%.*]] = fadd fast <2 x double> [[VEC_PHI1]], [[WIDE_LOAD2]]
89
+ ; SSE-NEXT: [[PREDPHI]] = select <2 x i1> [[TMP6]], <2 x double> [[TMP8 ]], <2 x double> [[VEC_PHI]]
90
+ ; SSE-NEXT: [[PREDPHI3]] = select <2 x i1> [[TMP7]], <2 x double> [[TMP9 ]], <2 x double> [[VEC_PHI1]]
91
91
; SSE-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
92
- ; SSE-NEXT: [[TMP12 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 32
93
- ; SSE-NEXT: br i1 [[TMP12 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
92
+ ; SSE-NEXT: [[TMP10 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 32
93
+ ; SSE-NEXT: br i1 [[TMP10 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
94
94
; SSE: middle.block:
95
95
; SSE-NEXT: [[BIN_RDX:%.*]] = fadd fast <2 x double> [[PREDPHI3]], [[PREDPHI]]
96
- ; SSE-NEXT: [[TMP13 :%.*]] = call fast double @llvm.vector.reduce.fadd.v2f64(double -0.000000e+00, <2 x double> [[BIN_RDX]])
96
+ ; SSE-NEXT: [[TMP11 :%.*]] = call fast double @llvm.vector.reduce.fadd.v2f64(double -0.000000e+00, <2 x double> [[BIN_RDX]])
97
97
; SSE-NEXT: br i1 true, label [[DONE:%.*]], label [[SCALAR_PH]]
98
98
; SSE: scalar.ph:
99
99
; SSE-NEXT: [[BC_RESUME_VAL:%.*]] = phi i32 [ 32, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
100
- ; SSE-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP13 ]], [[MIDDLE_BLOCK]] ], [ 0.000000e+00, [[ENTRY]] ]
100
+ ; SSE-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP11 ]], [[MIDDLE_BLOCK]] ], [ 0.000000e+00, [[ENTRY]] ]
101
101
; SSE-NEXT: br label [[LOOP:%.*]]
102
102
; SSE: loop:
103
103
; SSE-NEXT: [[I:%.*]] = phi i32 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[I_NEXT:%.*]], [[NEXT_ITER:%.*]] ]
@@ -117,7 +117,7 @@ define double @sumIfVector(ptr nocapture readonly %arr) {
117
117
; SSE-NEXT: [[AGAIN:%.*]] = icmp ult i32 [[I_NEXT]], 32
118
118
; SSE-NEXT: br i1 [[AGAIN]], label [[LOOP]], label [[DONE]], !llvm.loop [[LOOP3:![0-9]+]]
119
119
; SSE: done:
120
- ; SSE-NEXT: [[TOT_NEXT_LCSSA:%.*]] = phi double [ [[TOT_NEXT]], [[NEXT_ITER]] ], [ [[TMP13 ]], [[MIDDLE_BLOCK]] ]
120
+ ; SSE-NEXT: [[TOT_NEXT_LCSSA:%.*]] = phi double [ [[TOT_NEXT]], [[NEXT_ITER]] ], [ [[TMP11 ]], [[MIDDLE_BLOCK]] ]
121
121
; SSE-NEXT: ret double [[TOT_NEXT_LCSSA]]
122
122
;
123
123
; AVX-LABEL: @sumIfVector(
@@ -151,26 +151,26 @@ define double @sumIfVector(ptr nocapture readonly %arr) {
151
151
; AVX-NEXT: [[TMP13:%.*]] = fcmp fast une <4 x double> [[WIDE_LOAD4]], <double 4.200000e+01, double 4.200000e+01, double 4.200000e+01, double 4.200000e+01>
152
152
; AVX-NEXT: [[TMP14:%.*]] = fcmp fast une <4 x double> [[WIDE_LOAD5]], <double 4.200000e+01, double 4.200000e+01, double 4.200000e+01, double 4.200000e+01>
153
153
; AVX-NEXT: [[TMP15:%.*]] = fcmp fast une <4 x double> [[WIDE_LOAD6]], <double 4.200000e+01, double 4.200000e+01, double 4.200000e+01, double 4.200000e+01>
154
- ; AVX-NEXT: [[TMP20 :%.*]] = fadd fast <4 x double> [[VEC_PHI]], [[WIDE_LOAD]]
155
- ; AVX-NEXT: [[TMP21 :%.*]] = fadd fast <4 x double> [[VEC_PHI1]], [[WIDE_LOAD4]]
156
- ; AVX-NEXT: [[TMP22 :%.*]] = fadd fast <4 x double> [[VEC_PHI2]], [[WIDE_LOAD5]]
157
- ; AVX-NEXT: [[TMP23 :%.*]] = fadd fast <4 x double> [[VEC_PHI3]], [[WIDE_LOAD6]]
158
- ; AVX-NEXT: [[PREDPHI]] = select <4 x i1> [[TMP12]], <4 x double> [[TMP20 ]], <4 x double> [[VEC_PHI]]
159
- ; AVX-NEXT: [[PREDPHI7]] = select <4 x i1> [[TMP13]], <4 x double> [[TMP21 ]], <4 x double> [[VEC_PHI1]]
160
- ; AVX-NEXT: [[PREDPHI8]] = select <4 x i1> [[TMP14]], <4 x double> [[TMP22 ]], <4 x double> [[VEC_PHI2]]
161
- ; AVX-NEXT: [[PREDPHI9]] = select <4 x i1> [[TMP15]], <4 x double> [[TMP23 ]], <4 x double> [[VEC_PHI3]]
154
+ ; AVX-NEXT: [[TMP16 :%.*]] = fadd fast <4 x double> [[VEC_PHI]], [[WIDE_LOAD]]
155
+ ; AVX-NEXT: [[TMP17 :%.*]] = fadd fast <4 x double> [[VEC_PHI1]], [[WIDE_LOAD4]]
156
+ ; AVX-NEXT: [[TMP18 :%.*]] = fadd fast <4 x double> [[VEC_PHI2]], [[WIDE_LOAD5]]
157
+ ; AVX-NEXT: [[TMP19 :%.*]] = fadd fast <4 x double> [[VEC_PHI3]], [[WIDE_LOAD6]]
158
+ ; AVX-NEXT: [[PREDPHI]] = select <4 x i1> [[TMP12]], <4 x double> [[TMP16 ]], <4 x double> [[VEC_PHI]]
159
+ ; AVX-NEXT: [[PREDPHI7]] = select <4 x i1> [[TMP13]], <4 x double> [[TMP17 ]], <4 x double> [[VEC_PHI1]]
160
+ ; AVX-NEXT: [[PREDPHI8]] = select <4 x i1> [[TMP14]], <4 x double> [[TMP18 ]], <4 x double> [[VEC_PHI2]]
161
+ ; AVX-NEXT: [[PREDPHI9]] = select <4 x i1> [[TMP15]], <4 x double> [[TMP19 ]], <4 x double> [[VEC_PHI3]]
162
162
; AVX-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 16
163
- ; AVX-NEXT: [[TMP24 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 32
164
- ; AVX-NEXT: br i1 [[TMP24 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
163
+ ; AVX-NEXT: [[TMP20 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 32
164
+ ; AVX-NEXT: br i1 [[TMP20 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
165
165
; AVX: middle.block:
166
166
; AVX-NEXT: [[BIN_RDX:%.*]] = fadd fast <4 x double> [[PREDPHI7]], [[PREDPHI]]
167
167
; AVX-NEXT: [[BIN_RDX10:%.*]] = fadd fast <4 x double> [[PREDPHI8]], [[BIN_RDX]]
168
168
; AVX-NEXT: [[BIN_RDX11:%.*]] = fadd fast <4 x double> [[PREDPHI9]], [[BIN_RDX10]]
169
- ; AVX-NEXT: [[TMP25 :%.*]] = call fast double @llvm.vector.reduce.fadd.v4f64(double -0.000000e+00, <4 x double> [[BIN_RDX11]])
169
+ ; AVX-NEXT: [[TMP21 :%.*]] = call fast double @llvm.vector.reduce.fadd.v4f64(double -0.000000e+00, <4 x double> [[BIN_RDX11]])
170
170
; AVX-NEXT: br i1 true, label [[DONE:%.*]], label [[SCALAR_PH]]
171
171
; AVX: scalar.ph:
172
172
; AVX-NEXT: [[BC_RESUME_VAL:%.*]] = phi i32 [ 32, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
173
- ; AVX-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP25 ]], [[MIDDLE_BLOCK]] ], [ 0.000000e+00, [[ENTRY]] ]
173
+ ; AVX-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP21 ]], [[MIDDLE_BLOCK]] ], [ 0.000000e+00, [[ENTRY]] ]
174
174
; AVX-NEXT: br label [[LOOP:%.*]]
175
175
; AVX: loop:
176
176
; AVX-NEXT: [[I:%.*]] = phi i32 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[I_NEXT:%.*]], [[NEXT_ITER:%.*]] ]
@@ -190,7 +190,7 @@ define double @sumIfVector(ptr nocapture readonly %arr) {
190
190
; AVX-NEXT: [[AGAIN:%.*]] = icmp ult i32 [[I_NEXT]], 32
191
191
; AVX-NEXT: br i1 [[AGAIN]], label [[LOOP]], label [[DONE]], !llvm.loop [[LOOP3:![0-9]+]]
192
192
; AVX: done:
193
- ; AVX-NEXT: [[TOT_NEXT_LCSSA:%.*]] = phi double [ [[TOT_NEXT]], [[NEXT_ITER]] ], [ [[TMP25 ]], [[MIDDLE_BLOCK]] ]
193
+ ; AVX-NEXT: [[TOT_NEXT_LCSSA:%.*]] = phi double [ [[TOT_NEXT]], [[NEXT_ITER]] ], [ [[TMP21 ]], [[MIDDLE_BLOCK]] ]
194
194
; AVX-NEXT: ret double [[TOT_NEXT_LCSSA]]
195
195
;
196
196
entry:
0 commit comments