[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / legalize-cmp.mir
blobc7c061a15a2f98d8713496692bc023b920135757
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=aarch64 -run-pass=legalizer -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s
3 ---
4 name:            test_icmp
5 body:             |
6   bb.0.entry:
7     ; CHECK-LABEL: name: test_icmp
8     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
9     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x0
10     ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[COPY]](s64), [[COPY1]]
11     ; CHECK-NEXT: $w0 = COPY [[ICMP]](s32)
12     ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
13     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
14     ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]
15     ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
16     ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[TRUNC1]], [[C]]
17     ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]
18     ; CHECK-NEXT: $w0 = COPY [[ICMP1]](s32)
19     ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[COPY]](s64)
20     ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[INTTOPTR]](p0), [[INTTOPTR]]
21     ; CHECK-NEXT: $w0 = COPY [[ICMP2]](s32)
22     %0:_(s64) = COPY $x0
23     %1:_(s64) = COPY $x0
24     %2:_(s8) = G_TRUNC %0(s64)
25     %3:_(s8) = G_TRUNC %1(s64)
26     %4:_(s1) = G_ICMP intpred(sge), %0(s64), %1
27     %11:_(s32) = G_ANYEXT %4(s1)
28     $w0 = COPY %11(s32)
29     %8:_(s1) = G_ICMP intpred(ult), %2(s8), %3
30     %12:_(s32) = G_ANYEXT %8(s1)
31     $w0 = COPY %12(s32)
32     %9:_(p0) = G_INTTOPTR %0(s64)
33     %10:_(s1) = G_ICMP intpred(eq), %9(p0), %9
34     %14:_(s32) = G_ANYEXT %10(s1)
35     $w0 = COPY %14(s32)
37 ...
38 ---
39 name:            test_s128
40 alignment:       4
41 tracksRegLiveness: true
42 body:             |
43   ; CHECK-LABEL: name: test_s128
44   ; CHECK: bb.0:
45   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
46   ; CHECK-NEXT: {{  $}}
47   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
48   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
49   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967296
50   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[DEF]](s64), [[C1]]
51   ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[DEF]](s64), [[C1]]
52   ; CHECK-NEXT:   [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[DEF]](s64), [[C]]
53   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
54   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[ICMP1]], [[C2]]
55   ; CHECK-NEXT:   [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s32), [[ICMP2]], [[ICMP]]
56   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s32) = G_AND [[SELECT]], [[C2]]
57   ; CHECK-NEXT:   G_BRCOND [[AND1]](s32), %bb.1
58   ; CHECK-NEXT:   G_BR %bb.2
59   ; CHECK-NEXT: {{  $}}
60   ; CHECK-NEXT: bb.1:
61   ; CHECK-NEXT:   successors:
62   ; CHECK: bb.2:
63   ; CHECK-NEXT:   RET_ReallyLR
64   bb.1:
65     %0:_(s128) = G_IMPLICIT_DEF
66     %1:_(s128) = G_CONSTANT i128 79228162514264337593543950336
67     %3:_(s1) = G_CONSTANT i1 true
68     %2:_(s1) = G_ICMP intpred(ult), %0(s128), %1
69     G_BRCOND %2(s1), %bb.2
70     G_BR %bb.3
72   bb.2:
73     successors:
76   bb.3:
77     RET_ReallyLR
79 ...
80 ---
81 name:            test_s128_eq
82 tracksRegLiveness: true
83 body:             |
84   ; CHECK-LABEL: name: test_s128_eq
85   ; CHECK: bb.0:
86   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
87   ; CHECK-NEXT: {{  $}}
88   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
89   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
90   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]
91   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]
92   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
93   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s64), [[C]]
94   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
95   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C1]]
96   ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.1
97   ; CHECK-NEXT:   G_BR %bb.2
98   ; CHECK-NEXT: {{  $}}
99   ; CHECK-NEXT: bb.1:
100   ; CHECK-NEXT:   successors:
101   ; CHECK: bb.2:
102   ; CHECK-NEXT:   RET_ReallyLR
103   bb.1:
104     %lhs:_(s128) = G_IMPLICIT_DEF
105     %rhs:_(s128) = G_IMPLICIT_DEF
106     %cmp:_(s1) = G_ICMP intpred(eq), %lhs(s128), %rhs
107     G_BRCOND %cmp(s1), %bb.2
108     G_BR %bb.3
109   bb.2:
110     successors:
111   bb.3:
112     RET_ReallyLR
116 name:            test_s88_eq
117 tracksRegLiveness: true
118 body:             |
119   ; CHECK-LABEL: name: test_s88_eq
120   ; CHECK: bb.0:
121   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
122   ; CHECK-NEXT: {{  $}}
123   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
124   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
125   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 16777215
126   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
127   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
128   ; CHECK-NEXT:   [[AND2:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
129   ; CHECK-NEXT:   [[AND3:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
130   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
131   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND2]]
132   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND3]]
133   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
134   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s64), [[C2]]
135   ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
136   ; CHECK-NEXT:   [[AND4:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C3]]
137   ; CHECK-NEXT:   G_BRCOND [[AND4]](s32), %bb.1
138   ; CHECK-NEXT:   G_BR %bb.2
139   ; CHECK-NEXT: {{  $}}
140   ; CHECK-NEXT: bb.1:
141   ; CHECK-NEXT:   successors:
142   ; CHECK: bb.2:
143   ; CHECK-NEXT:   RET_ReallyLR
144   bb.1:
145     %lhs:_(s88) = G_IMPLICIT_DEF
146     %rhs:_(s88) = G_IMPLICIT_DEF
147     %cmp:_(s1) = G_ICMP intpred(eq), %lhs(s88), %rhs
148     G_BRCOND %cmp(s1), %bb.2
149     G_BR %bb.3
150   bb.2:
151     successors:
152   bb.3:
153     RET_ReallyLR
157 name:            test_s88_ne
158 tracksRegLiveness: true
159 body:             |
160   ; CHECK-LABEL: name: test_s88_ne
161   ; CHECK: bb.0:
162   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
163   ; CHECK-NEXT: {{  $}}
164   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
165   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
166   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 16777215
167   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
168   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
169   ; CHECK-NEXT:   [[AND2:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
170   ; CHECK-NEXT:   [[AND3:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
171   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
172   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND2]]
173   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND3]]
174   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
175   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR]](s64), [[C2]]
176   ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
177   ; CHECK-NEXT:   [[AND4:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C3]]
178   ; CHECK-NEXT:   G_BRCOND [[AND4]](s32), %bb.1
179   ; CHECK-NEXT:   G_BR %bb.2
180   ; CHECK-NEXT: {{  $}}
181   ; CHECK-NEXT: bb.1:
182   ; CHECK-NEXT:   successors:
183   ; CHECK: bb.2:
184   ; CHECK-NEXT:   RET_ReallyLR
185   bb.1:
186     %lhs:_(s88) = G_IMPLICIT_DEF
187     %rhs:_(s88) = G_IMPLICIT_DEF
188     %cmp:_(s1) = G_ICMP intpred(ne), %lhs(s88), %rhs
189     G_BRCOND %cmp(s1), %bb.2
190     G_BR %bb.3
191   bb.2:
192     successors:
193   bb.3:
194     RET_ReallyLR
198 name:            test_s96_eq
199 tracksRegLiveness: true
200 body:             |
201   ; CHECK-LABEL: name: test_s96_eq
202   ; CHECK: bb.0:
203   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
204   ; CHECK-NEXT: {{  $}}
205   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
206   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
207   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
208   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
209   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
210   ; CHECK-NEXT:   [[AND2:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
211   ; CHECK-NEXT:   [[AND3:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
212   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
213   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND2]]
214   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND3]]
215   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
216   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s64), [[C2]]
217   ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
218   ; CHECK-NEXT:   [[AND4:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C3]]
219   ; CHECK-NEXT:   G_BRCOND [[AND4]](s32), %bb.1
220   ; CHECK-NEXT:   G_BR %bb.2
221   ; CHECK-NEXT: {{  $}}
222   ; CHECK-NEXT: bb.1:
223   ; CHECK-NEXT:   successors:
224   ; CHECK: bb.2:
225   ; CHECK-NEXT:   RET_ReallyLR
226   bb.1:
227     %lhs:_(s96) = G_IMPLICIT_DEF
228     %rhs:_(s96) = G_IMPLICIT_DEF
229     %cmp:_(s1) = G_ICMP intpred(eq), %lhs(s96), %rhs
230     G_BRCOND %cmp(s1), %bb.2
231     G_BR %bb.3
232   bb.2:
233     successors:
234   bb.3:
235     RET_ReallyLR
238 name:            test_s318_eq
239 tracksRegLiveness: true
240 body:             |
241   ; CHECK-LABEL: name: test_s318_eq
242   ; CHECK: bb.0:
243   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
244   ; CHECK-NEXT: {{  $}}
245   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
246   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
247   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4611686018427387903
248   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
249   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
250   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
251   ; CHECK-NEXT:   [[AND2:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
252   ; CHECK-NEXT:   [[AND3:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
253   ; CHECK-NEXT:   [[AND4:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
254   ; CHECK-NEXT:   [[AND5:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
255   ; CHECK-NEXT:   [[AND6:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
256   ; CHECK-NEXT:   [[AND7:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
257   ; CHECK-NEXT:   [[AND8:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
258   ; CHECK-NEXT:   [[AND9:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
259   ; CHECK-NEXT:   [[AND10:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
260   ; CHECK-NEXT:   [[AND11:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
261   ; CHECK-NEXT:   [[AND12:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
262   ; CHECK-NEXT:   [[AND13:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
263   ; CHECK-NEXT:   [[AND14:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
264   ; CHECK-NEXT:   [[AND15:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
265   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND8]]
266   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND9]]
267   ; CHECK-NEXT:   [[XOR2:%[0-9]+]]:_(s64) = G_XOR [[AND2]], [[AND10]]
268   ; CHECK-NEXT:   [[XOR3:%[0-9]+]]:_(s64) = G_XOR [[AND3]], [[AND11]]
269   ; CHECK-NEXT:   [[XOR4:%[0-9]+]]:_(s64) = G_XOR [[AND4]], [[AND12]]
270   ; CHECK-NEXT:   [[XOR5:%[0-9]+]]:_(s64) = G_XOR [[AND5]], [[AND13]]
271   ; CHECK-NEXT:   [[XOR6:%[0-9]+]]:_(s64) = G_XOR [[AND6]], [[AND14]]
272   ; CHECK-NEXT:   [[XOR7:%[0-9]+]]:_(s64) = G_XOR [[AND7]], [[AND15]]
273   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
274   ; CHECK-NEXT:   [[OR1:%[0-9]+]]:_(s64) = G_OR [[OR]], [[XOR2]]
275   ; CHECK-NEXT:   [[OR2:%[0-9]+]]:_(s64) = G_OR [[OR1]], [[XOR3]]
276   ; CHECK-NEXT:   [[OR3:%[0-9]+]]:_(s64) = G_OR [[OR2]], [[XOR4]]
277   ; CHECK-NEXT:   [[OR4:%[0-9]+]]:_(s64) = G_OR [[OR3]], [[XOR5]]
278   ; CHECK-NEXT:   [[OR5:%[0-9]+]]:_(s64) = G_OR [[OR4]], [[XOR6]]
279   ; CHECK-NEXT:   [[OR6:%[0-9]+]]:_(s64) = G_OR [[OR5]], [[XOR7]]
280   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR6]](s64), [[C2]]
281   ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
282   ; CHECK-NEXT:   [[AND16:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C3]]
283   ; CHECK-NEXT:   G_BRCOND [[AND16]](s32), %bb.1
284   ; CHECK-NEXT:   G_BR %bb.2
285   ; CHECK-NEXT: {{  $}}
286   ; CHECK-NEXT: bb.1:
287   ; CHECK-NEXT:   successors:
288   ; CHECK: bb.2:
289   ; CHECK-NEXT:   RET_ReallyLR
290   bb.1:
291     %lhs:_(s318) = G_IMPLICIT_DEF
292     %rhs:_(s318) = G_IMPLICIT_DEF
293     %cmp:_(s1) = G_ICMP intpred(eq), %lhs(s318), %rhs
294     G_BRCOND %cmp(s1), %bb.2
295     G_BR %bb.3
296   bb.2:
297     successors:
298   bb.3:
299     RET_ReallyLR
302 name:            test_s158_eq
303 tracksRegLiveness: true
304 body:             |
305   ; CHECK-LABEL: name: test_s158_eq
306   ; CHECK: bb.0:
307   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
308   ; CHECK-NEXT: {{  $}}
309   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
310   ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
311   ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1073741823
312   ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
313   ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
314   ; CHECK-NEXT:   [[AND1:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
315   ; CHECK-NEXT:   [[AND2:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
316   ; CHECK-NEXT:   [[AND3:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
317   ; CHECK-NEXT:   [[AND4:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
318   ; CHECK-NEXT:   [[AND5:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C]]
319   ; CHECK-NEXT:   [[AND6:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C1]]
320   ; CHECK-NEXT:   [[AND7:%[0-9]+]]:_(s64) = G_AND [[DEF]], [[C2]]
321   ; CHECK-NEXT:   [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND4]]
322   ; CHECK-NEXT:   [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND5]]
323   ; CHECK-NEXT:   [[XOR2:%[0-9]+]]:_(s64) = G_XOR [[AND2]], [[AND6]]
324   ; CHECK-NEXT:   [[XOR3:%[0-9]+]]:_(s64) = G_XOR [[AND3]], [[AND7]]
325   ; CHECK-NEXT:   [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]
326   ; CHECK-NEXT:   [[OR1:%[0-9]+]]:_(s64) = G_OR [[OR]], [[XOR2]]
327   ; CHECK-NEXT:   [[OR2:%[0-9]+]]:_(s64) = G_OR [[OR1]], [[XOR3]]
328   ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR2]](s64), [[C2]]
329   ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
330   ; CHECK-NEXT:   [[AND8:%[0-9]+]]:_(s32) = G_AND [[ICMP]], [[C3]]
331   ; CHECK-NEXT:   G_BRCOND [[AND8]](s32), %bb.1
332   ; CHECK-NEXT:   G_BR %bb.2
333   ; CHECK-NEXT: {{  $}}
334   ; CHECK-NEXT: bb.1:
335   ; CHECK-NEXT:   successors:
336   ; CHECK: bb.2:
337   ; CHECK-NEXT:   RET_ReallyLR
338   bb.1:
339     %lhs:_(s158) = G_IMPLICIT_DEF
340     %rhs:_(s158) = G_IMPLICIT_DEF
341     %cmp:_(s1) = G_ICMP intpred(eq), %lhs(s158), %rhs
342     G_BRCOND %cmp(s1), %bb.2
343     G_BR %bb.3
344   bb.2:
345     successors:
346   bb.3:
347     RET_ReallyLR