@@ -28,26 +28,27 @@ define i32 @foo() {
2828 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s32) from @var1)
2929 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3030 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C3]]
31+ ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
3132 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.3
3233 ; CHECK-NEXT: G_BR %bb.2
3334 ; CHECK-NEXT: {{ $}}
3435 ; CHECK-NEXT: bb.2.if.then:
3536 ; CHECK-NEXT: successors: %bb.3(0x80000000)
3637 ; CHECK-NEXT: {{ $}}
3738 ; CHECK-NEXT: [[GV3:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var2
38- ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s32) = G_CONSTANT i32 2
39- ; CHECK-NEXT: G_STORE [[C4 ]](s32), [[GV3]](p0) :: (store (s32) into @var2)
40- ; CHECK-NEXT: [[C5 :%[0-9]+]]:_(s32) = G_CONSTANT i32 3
39+ ; CHECK-NEXT: [[C5 :%[0-9]+]]:_(s32) = G_CONSTANT i32 2
40+ ; CHECK-NEXT: G_STORE [[C5 ]](s32), [[GV3]](p0) :: (store (s32) into @var2)
41+ ; CHECK-NEXT: [[C6 :%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4142 ; CHECK-NEXT: [[GV4:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var1
42- ; CHECK-NEXT: G_STORE [[C5 ]](s32), [[GV4]](p0) :: (store (s32) into @var1)
43+ ; CHECK-NEXT: G_STORE [[C6 ]](s32), [[GV4]](p0) :: (store (s32) into @var1)
4344 ; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3
44- ; CHECK-NEXT: G_STORE [[C4 ]](s32), [[GV5]](p0) :: (store (s32) into @var3)
45- ; CHECK-NEXT: G_STORE [[C5 ]](s32), [[GV4]](p0) :: (store (s32) into @var1)
45+ ; CHECK-NEXT: G_STORE [[C5 ]](s32), [[GV5]](p0) :: (store (s32) into @var3)
46+ ; CHECK-NEXT: G_STORE [[C6 ]](s32), [[GV4]](p0) :: (store (s32) into @var1)
4647 ; CHECK-NEXT: G_BR %bb.3
4748 ; CHECK-NEXT: {{ $}}
4849 ; CHECK-NEXT: bb.3.if.end:
49- ; CHECK-NEXT: [[C6 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
50- ; CHECK-NEXT: $w0 = COPY [[C6 ]](s32)
50+ ; CHECK-NEXT: [[C7 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
51+ ; CHECK-NEXT: $w0 = COPY [[C7 ]](s32)
5152 ; CHECK-NEXT: RET_ReallyLR implicit $w0
5253entry:
5354 %0 = load i32 , ptr @var1 , align 4
@@ -84,6 +85,7 @@ define i32 @darwin_tls() {
8485 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s32) from @var1)
8586 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
8687 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C1]]
88+ ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
8789 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.3
8890 ; CHECK-NEXT: G_BR %bb.2
8991 ; CHECK-NEXT: {{ $}}
@@ -96,8 +98,8 @@ define i32 @darwin_tls() {
9698 ; CHECK-NEXT: G_BR %bb.3
9799 ; CHECK-NEXT: {{ $}}
98100 ; CHECK-NEXT: bb.3.if.end:
99- ; CHECK-NEXT: [[C2 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
100- ; CHECK-NEXT: $w0 = COPY [[C2 ]](s32)
101+ ; CHECK-NEXT: [[C3 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
102+ ; CHECK-NEXT: $w0 = COPY [[C3 ]](s32)
101103 ; CHECK-NEXT: RET_ReallyLR implicit $w0
102104entry:
103105 %0 = load i32 , ptr @var1 , align 4
@@ -127,6 +129,7 @@ define i32 @imm_cost_too_large_cost_of_2() {
127129 ; CHECK-NEXT: [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:_(s32) = G_CONSTANT_FOLD_BARRIER [[C1]]
128130 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
129131 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C2]]
132+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
130133 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
131134 ; CHECK-NEXT: G_BR %bb.2
132135 ; CHECK-NEXT: {{ $}}
@@ -147,8 +150,8 @@ define i32 @imm_cost_too_large_cost_of_2() {
147150 ; CHECK-NEXT: bb.4.if.end:
148151 ; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3
149152 ; CHECK-NEXT: G_STORE [[CONSTANT_FOLD_BARRIER]](s32), [[GV5]](p0) :: (store (s32) into @var3)
150- ; CHECK-NEXT: [[C3 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
151- ; CHECK-NEXT: $w0 = COPY [[C3 ]](s32)
153+ ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s32) = G_CONSTANT i32 0
154+ ; CHECK-NEXT: $w0 = COPY [[C4 ]](s32)
152155 ; CHECK-NEXT: RET_ReallyLR implicit $w0
153156entry:
154157 %0 = load i32 , ptr @var1 , align 4
@@ -183,6 +186,7 @@ define i64 @imm_cost_too_large_cost_of_4() {
183186 ; CHECK-NEXT: [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:_(s64) = G_CONSTANT_FOLD_BARRIER [[C1]]
184187 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
185188 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
189+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
186190 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
187191 ; CHECK-NEXT: G_BR %bb.2
188192 ; CHECK-NEXT: {{ $}}
@@ -203,8 +207,8 @@ define i64 @imm_cost_too_large_cost_of_4() {
203207 ; CHECK-NEXT: bb.4.if.end:
204208 ; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3_64
205209 ; CHECK-NEXT: G_STORE [[CONSTANT_FOLD_BARRIER]](s64), [[GV5]](p0) :: (store (s64) into @var3_64)
206- ; CHECK-NEXT: [[C3 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
207- ; CHECK-NEXT: $x0 = COPY [[C3 ]](s64)
210+ ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
211+ ; CHECK-NEXT: $x0 = COPY [[C4 ]](s64)
208212 ; CHECK-NEXT: RET_ReallyLR implicit $x0
209213entry:
210214 %0 = load i64 , ptr @var1_64 , align 4
@@ -239,6 +243,7 @@ define i64 @f64_imm_cost_too_high(double %a) {
239243 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s64) from @var1_64, align 4)
240244 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
241245 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
246+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
242247 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
243248 ; CHECK-NEXT: G_BR %bb.2
244249 ; CHECK-NEXT: {{ $}}
@@ -259,8 +264,8 @@ define i64 @f64_imm_cost_too_high(double %a) {
259264 ; CHECK-NEXT: bb.4.if.end:
260265 ; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3_64
261266 ; CHECK-NEXT: G_STORE [[C]](s64), [[GV5]](p0) :: (store (s64) into @var3_64)
262- ; CHECK-NEXT: [[C3 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
263- ; CHECK-NEXT: $x0 = COPY [[C3 ]](s64)
267+ ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
268+ ; CHECK-NEXT: $x0 = COPY [[C4 ]](s64)
264269 ; CHECK-NEXT: RET_ReallyLR implicit $x0
265270entry:
266271 %0 = load i64 , ptr @var1_64 , align 4
@@ -294,31 +299,32 @@ define i64 @f64_imm_cheap(double %a) {
294299 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s64) from @var1_64, align 4)
295300 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
296301 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
302+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
297303 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
298304 ; CHECK-NEXT: G_BR %bb.2
299305 ; CHECK-NEXT: {{ $}}
300306 ; CHECK-NEXT: bb.2.if.then:
301307 ; CHECK-NEXT: successors: %bb.3(0x80000000)
302308 ; CHECK-NEXT: {{ $}}
303309 ; CHECK-NEXT: [[GV3:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var2_64
304- ; CHECK-NEXT: [[C3 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
305- ; CHECK-NEXT: G_STORE [[C3 ]](s64), [[GV3]](p0) :: (store (s64) into @var2_64)
310+ ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
311+ ; CHECK-NEXT: G_STORE [[C4 ]](s64), [[GV3]](p0) :: (store (s64) into @var2_64)
306312 ; CHECK-NEXT: G_BR %bb.3
307313 ; CHECK-NEXT: {{ $}}
308314 ; CHECK-NEXT: bb.3.if.then2:
309315 ; CHECK-NEXT: successors: %bb.4(0x80000000)
310316 ; CHECK-NEXT: {{ $}}
311- ; CHECK-NEXT: [[C4 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
317+ ; CHECK-NEXT: [[C5 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
312318 ; CHECK-NEXT: [[GV4:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var1_64
313- ; CHECK-NEXT: G_STORE [[C4 ]](s64), [[GV4]](p0) :: (store (s64) into @var1_64)
319+ ; CHECK-NEXT: G_STORE [[C5 ]](s64), [[GV4]](p0) :: (store (s64) into @var1_64)
314320 ; CHECK-NEXT: G_BR %bb.4
315321 ; CHECK-NEXT: {{ $}}
316322 ; CHECK-NEXT: bb.4.if.end:
317323 ; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3_64
318- ; CHECK-NEXT: [[C5 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
319- ; CHECK-NEXT: G_STORE [[C5 ]](s64), [[GV5]](p0) :: (store (s64) into @var3_64)
320- ; CHECK-NEXT: [[C6 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
321- ; CHECK-NEXT: $x0 = COPY [[C6 ]](s64)
324+ ; CHECK-NEXT: [[C6 :%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00
325+ ; CHECK-NEXT: G_STORE [[C6 ]](s64), [[GV5]](p0) :: (store (s64) into @var3_64)
326+ ; CHECK-NEXT: [[C7 :%[0-9]+]]:_(s64) = G_CONSTANT i64 0
327+ ; CHECK-NEXT: $x0 = COPY [[C7 ]](s64)
322328 ; CHECK-NEXT: RET_ReallyLR implicit $x0
323329entry:
324330 %0 = load i64 , ptr @var1_64 , align 4
0 commit comments