@@ -28,26 +28,27 @@ define i32 @foo() {
28
28
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s32) from @var1)
29
29
; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
30
30
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C3]]
31
+ ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
31
32
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.3
32
33
; CHECK-NEXT: G_BR %bb.2
33
34
; CHECK-NEXT: {{ $}}
34
35
; CHECK-NEXT: bb.2.if.then:
35
36
; CHECK-NEXT: successors: %bb.3(0x80000000)
36
37
; CHECK-NEXT: {{ $}}
37
38
; 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
41
42
; 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)
43
44
; 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)
46
47
; CHECK-NEXT: G_BR %bb.3
47
48
; CHECK-NEXT: {{ $}}
48
49
; 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)
51
52
; CHECK-NEXT: RET_ReallyLR implicit $w0
52
53
entry:
53
54
%0 = load i32 , ptr @var1 , align 4
@@ -84,6 +85,7 @@ define i32 @darwin_tls() {
84
85
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s32) from @var1)
85
86
; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
86
87
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C1]]
88
+ ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
87
89
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.3
88
90
; CHECK-NEXT: G_BR %bb.2
89
91
; CHECK-NEXT: {{ $}}
@@ -96,8 +98,8 @@ define i32 @darwin_tls() {
96
98
; CHECK-NEXT: G_BR %bb.3
97
99
; CHECK-NEXT: {{ $}}
98
100
; 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)
101
103
; CHECK-NEXT: RET_ReallyLR implicit $w0
102
104
entry:
103
105
%0 = load i32 , ptr @var1 , align 4
@@ -127,6 +129,7 @@ define i32 @imm_cost_too_large_cost_of_2() {
127
129
; CHECK-NEXT: [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:_(s32) = G_CONSTANT_FOLD_BARRIER [[C1]]
128
130
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
129
131
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s32), [[C2]]
132
+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
130
133
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
131
134
; CHECK-NEXT: G_BR %bb.2
132
135
; CHECK-NEXT: {{ $}}
@@ -147,8 +150,8 @@ define i32 @imm_cost_too_large_cost_of_2() {
147
150
; CHECK-NEXT: bb.4.if.end:
148
151
; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3
149
152
; 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)
152
155
; CHECK-NEXT: RET_ReallyLR implicit $w0
153
156
entry:
154
157
%0 = load i32 , ptr @var1 , align 4
@@ -183,6 +186,7 @@ define i64 @imm_cost_too_large_cost_of_4() {
183
186
; CHECK-NEXT: [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:_(s64) = G_CONSTANT_FOLD_BARRIER [[C1]]
184
187
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
185
188
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
189
+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
186
190
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
187
191
; CHECK-NEXT: G_BR %bb.2
188
192
; CHECK-NEXT: {{ $}}
@@ -203,8 +207,8 @@ define i64 @imm_cost_too_large_cost_of_4() {
203
207
; CHECK-NEXT: bb.4.if.end:
204
208
; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3_64
205
209
; 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)
208
212
; CHECK-NEXT: RET_ReallyLR implicit $x0
209
213
entry:
210
214
%0 = load i64 , ptr @var1_64 , align 4
@@ -239,6 +243,7 @@ define i64 @f64_imm_cost_too_high(double %a) {
239
243
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s64) from @var1_64, align 4)
240
244
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
241
245
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
246
+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
242
247
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
243
248
; CHECK-NEXT: G_BR %bb.2
244
249
; CHECK-NEXT: {{ $}}
@@ -259,8 +264,8 @@ define i64 @f64_imm_cost_too_high(double %a) {
259
264
; CHECK-NEXT: bb.4.if.end:
260
265
; CHECK-NEXT: [[GV5:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var3_64
261
266
; 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)
264
269
; CHECK-NEXT: RET_ReallyLR implicit $x0
265
270
entry:
266
271
%0 = load i64 , ptr @var1_64 , align 4
@@ -294,31 +299,32 @@ define i64 @f64_imm_cheap(double %a) {
294
299
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[GV2]](p0) :: (dereferenceable load (s64) from @var1_64, align 4)
295
300
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
296
301
; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](s64), [[C2]]
302
+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
297
303
; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4
298
304
; CHECK-NEXT: G_BR %bb.2
299
305
; CHECK-NEXT: {{ $}}
300
306
; CHECK-NEXT: bb.2.if.then:
301
307
; CHECK-NEXT: successors: %bb.3(0x80000000)
302
308
; CHECK-NEXT: {{ $}}
303
309
; 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)
306
312
; CHECK-NEXT: G_BR %bb.3
307
313
; CHECK-NEXT: {{ $}}
308
314
; CHECK-NEXT: bb.3.if.then2:
309
315
; CHECK-NEXT: successors: %bb.4(0x80000000)
310
316
; 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
312
318
; 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)
314
320
; CHECK-NEXT: G_BR %bb.4
315
321
; CHECK-NEXT: {{ $}}
316
322
; CHECK-NEXT: bb.4.if.end:
317
323
; 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)
322
328
; CHECK-NEXT: RET_ReallyLR implicit $x0
323
329
entry:
324
330
%0 = load i64 , ptr @var1_64 , align 4
0 commit comments