Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / regbankselect / long_ambiguous_chain_s64.mir
blob4226f2bb6ff5558cbdef961419e0e9ffe73a110d
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3 --- |
5   define void @long_chain_ambiguous_i64_in_fpr(i1 %cnd0, i1 %cnd1, i1 %cnd2, ptr %a, ptr %b, ptr %c, ptr %result) {
6   entry:
7     br i1 %cnd0, label %pre.PHI.2, label %pre.PHI.1
9   pre.PHI.1:                                        ; preds = %entry
10     br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0
12   pre.PHI.1.0:                                      ; preds = %pre.PHI.1
13     br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0
15   b.PHI.1.0:                                        ; preds = %pre.PHI.1.0
16     %phi1.0 = load i64, ptr %a
17     br label %b.PHI.1
19   b.PHI.1.1:                                        ; preds = %pre.PHI.1
20     %phi1.1 = load i64, ptr %b
21     br label %b.PHI.1
23   b.PHI.1.2:                                        ; preds = %pre.PHI.1.0
24     %phi1.2 = load i64, ptr %c
25     br label %b.PHI.1
27   b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0
28     %phi1 = phi i64 [ %phi1.0, %b.PHI.1.0 ], [ %phi1.1, %b.PHI.1.1 ], [ %phi1.2, %b.PHI.1.2 ]
29     br i1 %cnd2, label %b.PHI.1.end, label %b.PHI.3
31   b.PHI.1.end:                                      ; preds = %b.PHI.1
32     store i64 %phi1, ptr %result
33     ret void
35   pre.PHI.2:                                        ; preds = %entry
36     br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1
38   b.PHI.2.0:                                        ; preds = %pre.PHI.2
39     %phi2.0 = load i64, ptr %a
40     br label %b.PHI.2
42   b.PHI.2.1:                                        ; preds = %pre.PHI.2
43     %phi2.1 = load i64, ptr %b
44     br label %b.PHI.2
46   b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0
47     %phi2 = phi i64 [ %phi2.0, %b.PHI.2.0 ], [ %phi2.1, %b.PHI.2.1 ]
48     br i1 %cnd1, label %b.PHI.3, label %b.PHI.2.end
50   b.PHI.2.end:                                      ; preds = %b.PHI.2
51     store i64 %phi2, ptr %result
52     ret void
54   b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1
55     %phi3 = phi i64 [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
56     %phi4 = phi i64 [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
57     %sel_1.2 = select i1 %cnd2, i64 %phi3, i64 %phi4
58     %sel_3_1.2 = select i1 %cnd1, i64 %sel_1.2, i64 %phi3
59     store i64 %sel_3_1.2, ptr %result
60     store i64 %phi3, ptr %result
61     ret void
62   }
64   define void @long_chain_i64_in_gpr(i1 %cnd0, i1 %cnd1, i1 %cnd2, ptr %a, ptr %b, ptr %c, ptr %result) {
65   entry:
66     br i1 %cnd0, label %pre.PHI.2, label %pre.PHI.1
68   pre.PHI.1:                                        ; preds = %entry
69     br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0
71   pre.PHI.1.0:                                      ; preds = %pre.PHI.1
72     br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0
74   b.PHI.1.0:                                        ; preds = %pre.PHI.1.0
75     %phi1.0 = load i64, ptr %a
76     br label %b.PHI.1
78   b.PHI.1.1:                                        ; preds = %pre.PHI.1
79     %phi1.1 = load i64, ptr %b
80     br label %b.PHI.1
82   b.PHI.1.2:                                        ; preds = %pre.PHI.1.0
83     %phi1.2 = load i64, ptr %c
84     br label %b.PHI.1
86   b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0
87     %phi1 = phi i64 [ %phi1.0, %b.PHI.1.0 ], [ %phi1.1, %b.PHI.1.1 ], [ %phi1.2, %b.PHI.1.2 ]
88     br i1 %cnd2, label %b.PHI.1.end, label %b.PHI.3
90   b.PHI.1.end:                                      ; preds = %b.PHI.1
91     store i64 %phi1, ptr %result
92     ret void
94   pre.PHI.2:                                        ; preds = %entry
95     br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1
97   b.PHI.2.0:                                        ; preds = %pre.PHI.2
98     %phi2.0 = load i64, ptr %a
99     br label %b.PHI.2
101   b.PHI.2.1:                                        ; preds = %pre.PHI.2
102     %phi2.1 = load i64, ptr %b
103     br label %b.PHI.2
105   b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0
106     %phi2 = phi i64 [ %phi2.0, %b.PHI.2.0 ], [ %phi2.1, %b.PHI.2.1 ]
107     br i1 %cnd1, label %b.PHI.3, label %b.PHI.2.end
109   b.PHI.2.end:                                      ; preds = %b.PHI.2
110     store i64 %phi2, ptr %result
111     ret void
113   b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1
114     %phi3 = phi i64 [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
115     %phi4 = phi i64 [ %phi2, %b.PHI.2 ], [ 0, %b.PHI.1 ]
116     %sel_1.2 = select i1 %cnd2, i64 %phi3, i64 %phi4
117     %sel_3_1.2 = select i1 %cnd1, i64 %sel_1.2, i64 %phi3
118     store i64 %sel_3_1.2, ptr %result
119     store i64 %phi3, ptr %result
120     ret void
121   }
123   define void @long_chain_ambiguous_double_in_fpr(i1 %cnd0, i1 %cnd1, i1 %cnd2, ptr %a, ptr %b, ptr %c, ptr %result) {
124   entry:
125     br i1 %cnd0, label %pre.PHI.2, label %pre.PHI.1
127   pre.PHI.1:                                        ; preds = %entry
128     br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0
130   pre.PHI.1.0:                                      ; preds = %pre.PHI.1
131     br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0
133   b.PHI.1.0:                                        ; preds = %pre.PHI.1.0
134     %phi1.0 = load double, ptr %a
135     br label %b.PHI.1
137   b.PHI.1.1:                                        ; preds = %pre.PHI.1
138     %phi1.1 = load double, ptr %b
139     br label %b.PHI.1
141   b.PHI.1.2:                                        ; preds = %pre.PHI.1.0
142     %phi1.2 = load double, ptr %c
143     br label %b.PHI.1
145   b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0
146     %phi1 = phi double [ %phi1.0, %b.PHI.1.0 ], [ %phi1.1, %b.PHI.1.1 ], [ %phi1.2, %b.PHI.1.2 ]
147     br i1 %cnd2, label %b.PHI.1.end, label %b.PHI.3
149   b.PHI.1.end:                                      ; preds = %b.PHI.1
150     store double %phi1, ptr %result
151     ret void
153   pre.PHI.2:                                        ; preds = %entry
154     br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1
156   b.PHI.2.0:                                        ; preds = %pre.PHI.2
157     %phi2.0 = load double, ptr %a
158     br label %b.PHI.2
160   b.PHI.2.1:                                        ; preds = %pre.PHI.2
161     %phi2.1 = load double, ptr %b
162     br label %b.PHI.2
164   b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0
165     %phi2 = phi double [ %phi2.0, %b.PHI.2.0 ], [ %phi2.1, %b.PHI.2.1 ]
166     br i1 %cnd1, label %b.PHI.3, label %b.PHI.2.end
168   b.PHI.2.end:                                      ; preds = %b.PHI.2
169     store double %phi2, ptr %result
170     ret void
172   b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1
173     %phi3 = phi double [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
174     %phi4 = phi double [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
175     %sel_1.2 = select i1 %cnd2, double %phi3, double %phi4
176     %sel_3_1.2 = select i1 %cnd1, double %sel_1.2, double %phi3
177     store double %sel_3_1.2, ptr %result
178     store double %phi3, ptr %result
179     ret void
180   }
182   define void @long_chain_double_in_fpr(i1 %cnd0, i1 %cnd1, i1 %cnd2, ptr %a, ptr %b, ptr %c, ptr %result) {
183   entry:
184     br i1 %cnd0, label %pre.PHI.2, label %pre.PHI.1
186   pre.PHI.1:                                        ; preds = %entry
187     br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0
189   pre.PHI.1.0:                                      ; preds = %pre.PHI.1
190     br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0
192   b.PHI.1.0:                                        ; preds = %pre.PHI.1.0
193     %phi1.0 = load double, ptr %a
194     br label %b.PHI.1
196   b.PHI.1.1:                                        ; preds = %pre.PHI.1
197     %phi1.1 = load double, ptr %b
198     br label %b.PHI.1
200   b.PHI.1.2:                                        ; preds = %pre.PHI.1.0
201     %phi1.2 = load double, ptr %c
202     br label %b.PHI.1
204   b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0
205     %phi1 = phi double [ %phi1.0, %b.PHI.1.0 ], [ %phi1.1, %b.PHI.1.1 ], [ %phi1.2, %b.PHI.1.2 ]
206     br i1 %cnd2, label %b.PHI.1.end, label %b.PHI.3
208   b.PHI.1.end:                                      ; preds = %b.PHI.1
209     store double %phi1, ptr %result
210     ret void
212   pre.PHI.2:                                        ; preds = %entry
213     br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1
215   b.PHI.2.0:                                        ; preds = %pre.PHI.2
216     %phi2.0 = load double, ptr %a
217     br label %b.PHI.2
219   b.PHI.2.1:                                        ; preds = %pre.PHI.2
220     %phi2.1 = load double, ptr %b
221     br label %b.PHI.2
223   b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0
224     %phi2 = phi double [ %phi2.0, %b.PHI.2.0 ], [ %phi2.1, %b.PHI.2.1 ]
225     br i1 %cnd1, label %b.PHI.3, label %b.PHI.2.end
227   b.PHI.2.end:                                      ; preds = %b.PHI.2
228     store double %phi2, ptr %result
229     ret void
231   b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1
232     %phi3 = phi double [ %phi2, %b.PHI.2 ], [ %phi1, %b.PHI.1 ]
233     %phi4 = phi double [ %phi2, %b.PHI.2 ], [ 0.000000e+00, %b.PHI.1 ]
234     %sel_1.2 = select i1 %cnd2, double %phi3, double %phi4
235     %sel_3_1.2 = select i1 %cnd1, double %sel_1.2, double %phi3
236     store double %sel_3_1.2, ptr %result
237     store double %phi3, ptr %result
238     ret void
239   }
243 name:            long_chain_ambiguous_i64_in_fpr
244 alignment:       4
245 legalized:       true
246 tracksRegLiveness: true
247 fixedStack:
248   - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }
249   - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }
250   - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }
251 body:             |
252   ; MIPS32-LABEL: name: long_chain_ambiguous_i64_in_fpr
253   ; MIPS32: bb.0.entry:
254   ; MIPS32:   successors: %bb.8(0x40000000), %bb.1(0x40000000)
255   ; MIPS32:   liveins: $a0, $a1, $a2, $a3
256   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
257   ; MIPS32:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1
258   ; MIPS32:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2
259   ; MIPS32:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3
260   ; MIPS32:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0
261   ; MIPS32:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)
262   ; MIPS32:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1
263   ; MIPS32:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)
264   ; MIPS32:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2
265   ; MIPS32:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)
266   ; MIPS32:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
267   ; MIPS32:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
268   ; MIPS32:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C]]
269   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.8
270   ; MIPS32: bb.1.pre.PHI.1:
271   ; MIPS32:   successors: %bb.4(0x40000000), %bb.2(0x40000000)
272   ; MIPS32:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
273   ; MIPS32:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
274   ; MIPS32:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C1]]
275   ; MIPS32:   G_BRCOND [[AND1]](s32), %bb.4
276   ; MIPS32: bb.2.pre.PHI.1.0:
277   ; MIPS32:   successors: %bb.5(0x40000000), %bb.3(0x40000000)
278   ; MIPS32:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
279   ; MIPS32:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
280   ; MIPS32:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C2]]
281   ; MIPS32:   G_BRCOND [[AND2]](s32), %bb.5
282   ; MIPS32: bb.3.b.PHI.1.0:
283   ; MIPS32:   successors: %bb.6(0x80000000)
284   ; MIPS32:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
285   ; MIPS32:   G_BR %bb.6
286   ; MIPS32: bb.4.b.PHI.1.1:
287   ; MIPS32:   successors: %bb.6(0x80000000)
288   ; MIPS32:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
289   ; MIPS32:   G_BR %bb.6
290   ; MIPS32: bb.5.b.PHI.1.2:
291   ; MIPS32:   successors: %bb.6(0x80000000)
292   ; MIPS32:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)
293   ; MIPS32: bb.6.b.PHI.1:
294   ; MIPS32:   successors: %bb.7(0x40000000), %bb.13(0x40000000)
295   ; MIPS32:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5
296   ; MIPS32:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
297   ; MIPS32:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
298   ; MIPS32:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C3]]
299   ; MIPS32:   G_BRCOND [[AND3]](s32), %bb.7
300   ; MIPS32:   G_BR %bb.13
301   ; MIPS32: bb.7.b.PHI.1.end:
302   ; MIPS32:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
303   ; MIPS32:   RetRA
304   ; MIPS32: bb.8.pre.PHI.2:
305   ; MIPS32:   successors: %bb.9(0x40000000), %bb.10(0x40000000)
306   ; MIPS32:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
307   ; MIPS32:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
308   ; MIPS32:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C4]]
309   ; MIPS32:   G_BRCOND [[AND4]](s32), %bb.9
310   ; MIPS32:   G_BR %bb.10
311   ; MIPS32: bb.9.b.PHI.2.0:
312   ; MIPS32:   successors: %bb.11(0x80000000)
313   ; MIPS32:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
314   ; MIPS32:   G_BR %bb.11
315   ; MIPS32: bb.10.b.PHI.2.1:
316   ; MIPS32:   successors: %bb.11(0x80000000)
317   ; MIPS32:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
318   ; MIPS32: bb.11.b.PHI.2:
319   ; MIPS32:   successors: %bb.13(0x40000000), %bb.12(0x40000000)
320   ; MIPS32:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.10
321   ; MIPS32:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
322   ; MIPS32:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
323   ; MIPS32:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C5]]
324   ; MIPS32:   G_BRCOND [[AND5]](s32), %bb.13
325   ; MIPS32: bb.12.b.PHI.2.end:
326   ; MIPS32:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
327   ; MIPS32:   RetRA
328   ; MIPS32: bb.13.b.PHI.3:
329   ; MIPS32:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6
330   ; MIPS32:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6
331   ; MIPS32:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
332   ; MIPS32:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
333   ; MIPS32:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C6]]
334   ; MIPS32:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]
335   ; MIPS32:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
336   ; MIPS32:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C6]]
337   ; MIPS32:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]
338   ; MIPS32:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
339   ; MIPS32:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
340   ; MIPS32:   RetRA
341   bb.1.entry:
342     liveins: $a0, $a1, $a2, $a3
344     %7:_(s32) = COPY $a0
345     %8:_(s32) = COPY $a1
346     %9:_(s32) = COPY $a2
347     %3:_(p0) = COPY $a3
348     %10:_(p0) = G_FRAME_INDEX %fixed-stack.2
349     %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)
350     %11:_(p0) = G_FRAME_INDEX %fixed-stack.1
351     %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)
352     %12:_(p0) = G_FRAME_INDEX %fixed-stack.0
353     %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)
354     %32:_(s32) = G_CONSTANT i32 1
355     %33:_(s32) = COPY %7(s32)
356     %31:_(s32) = G_AND %33, %32
357     G_BRCOND %31(s32), %bb.9
359   bb.2.pre.PHI.1:
360     %34:_(s32) = G_CONSTANT i32 1
361     %35:_(s32) = COPY %8(s32)
362     %30:_(s32) = G_AND %35, %34
363     G_BRCOND %30(s32), %bb.5
365   bb.3.pre.PHI.1.0:
366     %36:_(s32) = G_CONSTANT i32 1
367     %37:_(s32) = COPY %9(s32)
368     %29:_(s32) = G_AND %37, %36
369     G_BRCOND %29(s32), %bb.6
371   bb.4.b.PHI.1.0:
372     %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
373     G_BR %bb.7
375   bb.5.b.PHI.1.1:
376     %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
377     G_BR %bb.7
379   bb.6.b.PHI.1.2:
380     %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)
382   bb.7.b.PHI.1:
383     %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6
384     %38:_(s32) = G_CONSTANT i32 1
385     %39:_(s32) = COPY %9(s32)
386     %28:_(s32) = G_AND %39, %38
387     G_BRCOND %28(s32), %bb.8
388     G_BR %bb.14
390   bb.8.b.PHI.1.end:
391     G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)
392     RetRA
394   bb.9.pre.PHI.2:
395     %40:_(s32) = G_CONSTANT i32 1
396     %41:_(s32) = COPY %7(s32)
397     %27:_(s32) = G_AND %41, %40
398     G_BRCOND %27(s32), %bb.10
399     G_BR %bb.11
401   bb.10.b.PHI.2.0:
402     %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
403     G_BR %bb.12
405   bb.11.b.PHI.2.1:
406     %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
408   bb.12.b.PHI.2:
409     %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11
410     %42:_(s32) = G_CONSTANT i32 1
411     %43:_(s32) = COPY %8(s32)
412     %26:_(s32) = G_AND %43, %42
413     G_BRCOND %26(s32), %bb.14
415   bb.13.b.PHI.2.end:
416     G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)
417     RetRA
419   bb.14.b.PHI.3:
420     %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
421     %21:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
422     %44:_(s32) = G_CONSTANT i32 1
423     %45:_(s32) = COPY %9(s32)
424     %25:_(s32) = G_AND %45, %44
425     %22:_(s64) = G_SELECT %25(s32), %20, %21
426     %46:_(s32) = COPY %8(s32)
427     %24:_(s32) = G_AND %46, %44
428     %23:_(s64) = G_SELECT %24(s32), %22, %20
429     G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)
430     G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)
431     RetRA
435 name:            long_chain_i64_in_gpr
436 alignment:       4
437 legalized:       true
438 tracksRegLiveness: true
439 fixedStack:
440   - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }
441   - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }
442   - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }
443 body:             |
444   ; MIPS32-LABEL: name: long_chain_i64_in_gpr
445   ; MIPS32: bb.0.entry:
446   ; MIPS32:   successors: %bb.8(0x40000000), %bb.1(0x40000000)
447   ; MIPS32:   liveins: $a0, $a1, $a2, $a3
448   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
449   ; MIPS32:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1
450   ; MIPS32:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2
451   ; MIPS32:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3
452   ; MIPS32:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0
453   ; MIPS32:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)
454   ; MIPS32:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1
455   ; MIPS32:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)
456   ; MIPS32:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2
457   ; MIPS32:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)
458   ; MIPS32:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0
459   ; MIPS32:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
460   ; MIPS32:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
461   ; MIPS32:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C1]]
462   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.8
463   ; MIPS32: bb.1.pre.PHI.1:
464   ; MIPS32:   successors: %bb.4(0x40000000), %bb.2(0x40000000)
465   ; MIPS32:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
466   ; MIPS32:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
467   ; MIPS32:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C2]]
468   ; MIPS32:   G_BRCOND [[AND1]](s32), %bb.4
469   ; MIPS32: bb.2.pre.PHI.1.0:
470   ; MIPS32:   successors: %bb.5(0x40000000), %bb.3(0x40000000)
471   ; MIPS32:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
472   ; MIPS32:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
473   ; MIPS32:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C3]]
474   ; MIPS32:   G_BRCOND [[AND2]](s32), %bb.5
475   ; MIPS32: bb.3.b.PHI.1.0:
476   ; MIPS32:   successors: %bb.6(0x80000000)
477   ; MIPS32:   [[LOAD3:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY3]](p0) :: (load (s32) from %ir.a, align 8)
478   ; MIPS32:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
479   ; MIPS32:   [[PTR_ADD:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[COPY3]], [[C4]](s32)
480   ; MIPS32:   [[LOAD4:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from %ir.a + 4, basealign 8)
481   ; MIPS32:   G_BR %bb.6
482   ; MIPS32: bb.4.b.PHI.1.1:
483   ; MIPS32:   successors: %bb.6(0x80000000)
484   ; MIPS32:   [[LOAD5:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD]](p0) :: (load (s32) from %ir.b, align 8)
485   ; MIPS32:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
486   ; MIPS32:   [[PTR_ADD1:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD]], [[C5]](s32)
487   ; MIPS32:   [[LOAD6:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD1]](p0) :: (load (s32) from %ir.b + 4, basealign 8)
488   ; MIPS32:   G_BR %bb.6
489   ; MIPS32: bb.5.b.PHI.1.2:
490   ; MIPS32:   successors: %bb.6(0x80000000)
491   ; MIPS32:   [[LOAD7:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD1]](p0) :: (load (s32) from %ir.c, align 8)
492   ; MIPS32:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
493   ; MIPS32:   [[PTR_ADD2:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD1]], [[C6]](s32)
494   ; MIPS32:   [[LOAD8:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD2]](p0) :: (load (s32) from %ir.c + 4, basealign 8)
495   ; MIPS32: bb.6.b.PHI.1:
496   ; MIPS32:   successors: %bb.7(0x40000000), %bb.13(0x40000000)
497   ; MIPS32:   [[PHI:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD3]](s32), %bb.3, [[LOAD5]](s32), %bb.4, [[LOAD7]](s32), %bb.5
498   ; MIPS32:   [[PHI1:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD4]](s32), %bb.3, [[LOAD6]](s32), %bb.4, [[LOAD8]](s32), %bb.5
499   ; MIPS32:   [[C7:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
500   ; MIPS32:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
501   ; MIPS32:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C7]]
502   ; MIPS32:   G_BRCOND [[AND3]](s32), %bb.7
503   ; MIPS32:   G_BR %bb.13
504   ; MIPS32: bb.7.b.PHI.1.end:
505   ; MIPS32:   G_STORE [[PHI]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)
506   ; MIPS32:   [[C8:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
507   ; MIPS32:   [[PTR_ADD3:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD2]], [[C8]](s32)
508   ; MIPS32:   G_STORE [[PHI1]](s32), [[PTR_ADD3]](p0) :: (store (s32) into %ir.result + 4, basealign 8)
509   ; MIPS32:   RetRA
510   ; MIPS32: bb.8.pre.PHI.2:
511   ; MIPS32:   successors: %bb.9(0x40000000), %bb.10(0x40000000)
512   ; MIPS32:   [[C9:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
513   ; MIPS32:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
514   ; MIPS32:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C9]]
515   ; MIPS32:   G_BRCOND [[AND4]](s32), %bb.9
516   ; MIPS32:   G_BR %bb.10
517   ; MIPS32: bb.9.b.PHI.2.0:
518   ; MIPS32:   successors: %bb.11(0x80000000)
519   ; MIPS32:   [[LOAD9:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY3]](p0) :: (load (s32) from %ir.a, align 8)
520   ; MIPS32:   [[C10:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
521   ; MIPS32:   [[PTR_ADD4:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[COPY3]], [[C10]](s32)
522   ; MIPS32:   [[LOAD10:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD4]](p0) :: (load (s32) from %ir.a + 4, basealign 8)
523   ; MIPS32:   G_BR %bb.11
524   ; MIPS32: bb.10.b.PHI.2.1:
525   ; MIPS32:   successors: %bb.11(0x80000000)
526   ; MIPS32:   [[LOAD11:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD]](p0) :: (load (s32) from %ir.b, align 8)
527   ; MIPS32:   [[C11:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
528   ; MIPS32:   [[PTR_ADD5:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD]], [[C11]](s32)
529   ; MIPS32:   [[LOAD12:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD5]](p0) :: (load (s32) from %ir.b + 4, basealign 8)
530   ; MIPS32: bb.11.b.PHI.2:
531   ; MIPS32:   successors: %bb.13(0x40000000), %bb.12(0x40000000)
532   ; MIPS32:   [[PHI2:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD9]](s32), %bb.9, [[LOAD11]](s32), %bb.10
533   ; MIPS32:   [[PHI3:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD10]](s32), %bb.9, [[LOAD12]](s32), %bb.10
534   ; MIPS32:   [[C12:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
535   ; MIPS32:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
536   ; MIPS32:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C12]]
537   ; MIPS32:   G_BRCOND [[AND5]](s32), %bb.13
538   ; MIPS32: bb.12.b.PHI.2.end:
539   ; MIPS32:   G_STORE [[PHI2]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)
540   ; MIPS32:   [[C13:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
541   ; MIPS32:   [[PTR_ADD6:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD2]], [[C13]](s32)
542   ; MIPS32:   G_STORE [[PHI3]](s32), [[PTR_ADD6]](p0) :: (store (s32) into %ir.result + 4, basealign 8)
543   ; MIPS32:   RetRA
544   ; MIPS32: bb.13.b.PHI.3:
545   ; MIPS32:   [[PHI4:%[0-9]+]]:gprb(s32) = G_PHI [[PHI2]](s32), %bb.11, [[PHI]](s32), %bb.6
546   ; MIPS32:   [[PHI5:%[0-9]+]]:gprb(s32) = G_PHI [[PHI3]](s32), %bb.11, [[PHI1]](s32), %bb.6
547   ; MIPS32:   [[PHI6:%[0-9]+]]:gprb(s32) = G_PHI [[PHI2]](s32), %bb.11, [[C]](s32), %bb.6
548   ; MIPS32:   [[PHI7:%[0-9]+]]:gprb(s32) = G_PHI [[PHI3]](s32), %bb.11, [[C]](s32), %bb.6
549   ; MIPS32:   [[C14:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
550   ; MIPS32:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
551   ; MIPS32:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C14]]
552   ; MIPS32:   [[SELECT:%[0-9]+]]:gprb(s32) = G_SELECT [[AND6]](s32), [[PHI4]], [[PHI6]]
553   ; MIPS32:   [[SELECT1:%[0-9]+]]:gprb(s32) = G_SELECT [[AND6]](s32), [[PHI5]], [[PHI7]]
554   ; MIPS32:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
555   ; MIPS32:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C14]]
556   ; MIPS32:   [[SELECT2:%[0-9]+]]:gprb(s32) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI4]]
557   ; MIPS32:   [[SELECT3:%[0-9]+]]:gprb(s32) = G_SELECT [[AND7]](s32), [[SELECT1]], [[PHI5]]
558   ; MIPS32:   G_STORE [[SELECT2]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)
559   ; MIPS32:   [[C15:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
560   ; MIPS32:   [[PTR_ADD7:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD2]], [[C15]](s32)
561   ; MIPS32:   G_STORE [[SELECT3]](s32), [[PTR_ADD7]](p0) :: (store (s32) into %ir.result + 4, basealign 8)
562   ; MIPS32:   G_STORE [[PHI4]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)
563   ; MIPS32:   [[C16:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4
564   ; MIPS32:   [[PTR_ADD8:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[LOAD2]], [[C16]](s32)
565   ; MIPS32:   G_STORE [[PHI5]](s32), [[PTR_ADD8]](p0) :: (store (s32) into %ir.result + 4, basealign 8)
566   ; MIPS32:   RetRA
567   bb.1.entry:
568     liveins: $a0, $a1, $a2, $a3
570     %7:_(s32) = COPY $a0
571     %8:_(s32) = COPY $a1
572     %9:_(s32) = COPY $a2
573     %3:_(p0) = COPY $a3
574     %10:_(p0) = G_FRAME_INDEX %fixed-stack.2
575     %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)
576     %11:_(p0) = G_FRAME_INDEX %fixed-stack.1
577     %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)
578     %12:_(p0) = G_FRAME_INDEX %fixed-stack.0
579     %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)
580     %33:_(s32) = G_CONSTANT i32 0
581     %24:_(s64) = G_MERGE_VALUES %33(s32), %33(s32)
582     %34:_(s32) = G_CONSTANT i32 1
583     %35:_(s32) = COPY %7(s32)
584     %32:_(s32) = G_AND %35, %34
585     G_BRCOND %32(s32), %bb.9
587   bb.2.pre.PHI.1:
588     %36:_(s32) = G_CONSTANT i32 1
589     %37:_(s32) = COPY %8(s32)
590     %31:_(s32) = G_AND %37, %36
591     G_BRCOND %31(s32), %bb.5
593   bb.3.pre.PHI.1.0:
594     %38:_(s32) = G_CONSTANT i32 1
595     %39:_(s32) = COPY %9(s32)
596     %30:_(s32) = G_AND %39, %38
597     G_BRCOND %30(s32), %bb.6
599   bb.4.b.PHI.1.0:
600     %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
601     G_BR %bb.7
603   bb.5.b.PHI.1.1:
604     %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
605     G_BR %bb.7
607   bb.6.b.PHI.1.2:
608     %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)
610   bb.7.b.PHI.1:
611     %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6
612     %40:_(s32) = G_CONSTANT i32 1
613     %41:_(s32) = COPY %9(s32)
614     %29:_(s32) = G_AND %41, %40
615     G_BRCOND %29(s32), %bb.8
616     G_BR %bb.14
618   bb.8.b.PHI.1.end:
619     G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)
620     RetRA
622   bb.9.pre.PHI.2:
623     %42:_(s32) = G_CONSTANT i32 1
624     %43:_(s32) = COPY %7(s32)
625     %28:_(s32) = G_AND %43, %42
626     G_BRCOND %28(s32), %bb.10
627     G_BR %bb.11
629   bb.10.b.PHI.2.0:
630     %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
631     G_BR %bb.12
633   bb.11.b.PHI.2.1:
634     %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
636   bb.12.b.PHI.2:
637     %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11
638     %44:_(s32) = G_CONSTANT i32 1
639     %45:_(s32) = COPY %8(s32)
640     %27:_(s32) = G_AND %45, %44
641     G_BRCOND %27(s32), %bb.14
643   bb.13.b.PHI.2.end:
644     G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)
645     RetRA
647   bb.14.b.PHI.3:
648     %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
649     %21:_(s64) = G_PHI %19(s64), %bb.12, %24(s64), %bb.7
650     %46:_(s32) = G_CONSTANT i32 1
651     %47:_(s32) = COPY %9(s32)
652     %26:_(s32) = G_AND %47, %46
653     %22:_(s64) = G_SELECT %26(s32), %20, %21
654     %48:_(s32) = COPY %8(s32)
655     %25:_(s32) = G_AND %48, %46
656     %23:_(s64) = G_SELECT %25(s32), %22, %20
657     G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)
658     G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)
659     RetRA
663 name:            long_chain_ambiguous_double_in_fpr
664 alignment:       4
665 legalized:       true
666 tracksRegLiveness: true
667 fixedStack:
668   - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }
669   - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }
670   - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }
671 body:             |
672   ; MIPS32-LABEL: name: long_chain_ambiguous_double_in_fpr
673   ; MIPS32: bb.0.entry:
674   ; MIPS32:   successors: %bb.8(0x40000000), %bb.1(0x40000000)
675   ; MIPS32:   liveins: $a0, $a1, $a2, $a3
676   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
677   ; MIPS32:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1
678   ; MIPS32:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2
679   ; MIPS32:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3
680   ; MIPS32:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0
681   ; MIPS32:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)
682   ; MIPS32:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1
683   ; MIPS32:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)
684   ; MIPS32:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2
685   ; MIPS32:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)
686   ; MIPS32:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
687   ; MIPS32:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
688   ; MIPS32:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C]]
689   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.8
690   ; MIPS32: bb.1.pre.PHI.1:
691   ; MIPS32:   successors: %bb.4(0x40000000), %bb.2(0x40000000)
692   ; MIPS32:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
693   ; MIPS32:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
694   ; MIPS32:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C1]]
695   ; MIPS32:   G_BRCOND [[AND1]](s32), %bb.4
696   ; MIPS32: bb.2.pre.PHI.1.0:
697   ; MIPS32:   successors: %bb.5(0x40000000), %bb.3(0x40000000)
698   ; MIPS32:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
699   ; MIPS32:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
700   ; MIPS32:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C2]]
701   ; MIPS32:   G_BRCOND [[AND2]](s32), %bb.5
702   ; MIPS32: bb.3.b.PHI.1.0:
703   ; MIPS32:   successors: %bb.6(0x80000000)
704   ; MIPS32:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
705   ; MIPS32:   G_BR %bb.6
706   ; MIPS32: bb.4.b.PHI.1.1:
707   ; MIPS32:   successors: %bb.6(0x80000000)
708   ; MIPS32:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
709   ; MIPS32:   G_BR %bb.6
710   ; MIPS32: bb.5.b.PHI.1.2:
711   ; MIPS32:   successors: %bb.6(0x80000000)
712   ; MIPS32:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)
713   ; MIPS32: bb.6.b.PHI.1:
714   ; MIPS32:   successors: %bb.7(0x40000000), %bb.13(0x40000000)
715   ; MIPS32:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5
716   ; MIPS32:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
717   ; MIPS32:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
718   ; MIPS32:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C3]]
719   ; MIPS32:   G_BRCOND [[AND3]](s32), %bb.7
720   ; MIPS32:   G_BR %bb.13
721   ; MIPS32: bb.7.b.PHI.1.end:
722   ; MIPS32:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
723   ; MIPS32:   RetRA
724   ; MIPS32: bb.8.pre.PHI.2:
725   ; MIPS32:   successors: %bb.9(0x40000000), %bb.10(0x40000000)
726   ; MIPS32:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
727   ; MIPS32:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
728   ; MIPS32:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C4]]
729   ; MIPS32:   G_BRCOND [[AND4]](s32), %bb.9
730   ; MIPS32:   G_BR %bb.10
731   ; MIPS32: bb.9.b.PHI.2.0:
732   ; MIPS32:   successors: %bb.11(0x80000000)
733   ; MIPS32:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
734   ; MIPS32:   G_BR %bb.11
735   ; MIPS32: bb.10.b.PHI.2.1:
736   ; MIPS32:   successors: %bb.11(0x80000000)
737   ; MIPS32:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
738   ; MIPS32: bb.11.b.PHI.2:
739   ; MIPS32:   successors: %bb.13(0x40000000), %bb.12(0x40000000)
740   ; MIPS32:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.10
741   ; MIPS32:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
742   ; MIPS32:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
743   ; MIPS32:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C5]]
744   ; MIPS32:   G_BRCOND [[AND5]](s32), %bb.13
745   ; MIPS32: bb.12.b.PHI.2.end:
746   ; MIPS32:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
747   ; MIPS32:   RetRA
748   ; MIPS32: bb.13.b.PHI.3:
749   ; MIPS32:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6
750   ; MIPS32:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6
751   ; MIPS32:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
752   ; MIPS32:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
753   ; MIPS32:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C6]]
754   ; MIPS32:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]
755   ; MIPS32:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
756   ; MIPS32:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C6]]
757   ; MIPS32:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]
758   ; MIPS32:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
759   ; MIPS32:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
760   ; MIPS32:   RetRA
761   bb.1.entry:
762     liveins: $a0, $a1, $a2, $a3
764     %7:_(s32) = COPY $a0
765     %8:_(s32) = COPY $a1
766     %9:_(s32) = COPY $a2
767     %3:_(p0) = COPY $a3
768     %10:_(p0) = G_FRAME_INDEX %fixed-stack.2
769     %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)
770     %11:_(p0) = G_FRAME_INDEX %fixed-stack.1
771     %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)
772     %12:_(p0) = G_FRAME_INDEX %fixed-stack.0
773     %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)
774     %32:_(s32) = G_CONSTANT i32 1
775     %33:_(s32) = COPY %7(s32)
776     %31:_(s32) = G_AND %33, %32
777     G_BRCOND %31(s32), %bb.9
779   bb.2.pre.PHI.1:
780     %34:_(s32) = G_CONSTANT i32 1
781     %35:_(s32) = COPY %8(s32)
782     %30:_(s32) = G_AND %35, %34
783     G_BRCOND %30(s32), %bb.5
785   bb.3.pre.PHI.1.0:
786     %36:_(s32) = G_CONSTANT i32 1
787     %37:_(s32) = COPY %9(s32)
788     %29:_(s32) = G_AND %37, %36
789     G_BRCOND %29(s32), %bb.6
791   bb.4.b.PHI.1.0:
792     %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
793     G_BR %bb.7
795   bb.5.b.PHI.1.1:
796     %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
797     G_BR %bb.7
799   bb.6.b.PHI.1.2:
800     %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)
802   bb.7.b.PHI.1:
803     %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6
804     %38:_(s32) = G_CONSTANT i32 1
805     %39:_(s32) = COPY %9(s32)
806     %28:_(s32) = G_AND %39, %38
807     G_BRCOND %28(s32), %bb.8
808     G_BR %bb.14
810   bb.8.b.PHI.1.end:
811     G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)
812     RetRA
814   bb.9.pre.PHI.2:
815     %40:_(s32) = G_CONSTANT i32 1
816     %41:_(s32) = COPY %7(s32)
817     %27:_(s32) = G_AND %41, %40
818     G_BRCOND %27(s32), %bb.10
819     G_BR %bb.11
821   bb.10.b.PHI.2.0:
822     %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
823     G_BR %bb.12
825   bb.11.b.PHI.2.1:
826     %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
828   bb.12.b.PHI.2:
829     %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11
830     %42:_(s32) = G_CONSTANT i32 1
831     %43:_(s32) = COPY %8(s32)
832     %26:_(s32) = G_AND %43, %42
833     G_BRCOND %26(s32), %bb.14
835   bb.13.b.PHI.2.end:
836     G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)
837     RetRA
839   bb.14.b.PHI.3:
840     %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
841     %21:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
842     %44:_(s32) = G_CONSTANT i32 1
843     %45:_(s32) = COPY %9(s32)
844     %25:_(s32) = G_AND %45, %44
845     %22:_(s64) = G_SELECT %25(s32), %20, %21
846     %46:_(s32) = COPY %8(s32)
847     %24:_(s32) = G_AND %46, %44
848     %23:_(s64) = G_SELECT %24(s32), %22, %20
849     G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)
850     G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)
851     RetRA
855 name:            long_chain_double_in_fpr
856 alignment:       4
857 legalized:       true
858 tracksRegLiveness: true
859 fixedStack:
860   - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }
861   - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }
862   - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }
863 body:             |
864   ; MIPS32-LABEL: name: long_chain_double_in_fpr
865   ; MIPS32: bb.0.entry:
866   ; MIPS32:   successors: %bb.8(0x40000000), %bb.1(0x40000000)
867   ; MIPS32:   liveins: $a0, $a1, $a2, $a3
868   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
869   ; MIPS32:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1
870   ; MIPS32:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2
871   ; MIPS32:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3
872   ; MIPS32:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0
873   ; MIPS32:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)
874   ; MIPS32:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1
875   ; MIPS32:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)
876   ; MIPS32:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2
877   ; MIPS32:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)
878   ; MIPS32:   [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00
879   ; MIPS32:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
880   ; MIPS32:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
881   ; MIPS32:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C1]]
882   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.8
883   ; MIPS32: bb.1.pre.PHI.1:
884   ; MIPS32:   successors: %bb.4(0x40000000), %bb.2(0x40000000)
885   ; MIPS32:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
886   ; MIPS32:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
887   ; MIPS32:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C2]]
888   ; MIPS32:   G_BRCOND [[AND1]](s32), %bb.4
889   ; MIPS32: bb.2.pre.PHI.1.0:
890   ; MIPS32:   successors: %bb.5(0x40000000), %bb.3(0x40000000)
891   ; MIPS32:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
892   ; MIPS32:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
893   ; MIPS32:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C3]]
894   ; MIPS32:   G_BRCOND [[AND2]](s32), %bb.5
895   ; MIPS32: bb.3.b.PHI.1.0:
896   ; MIPS32:   successors: %bb.6(0x80000000)
897   ; MIPS32:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
898   ; MIPS32:   G_BR %bb.6
899   ; MIPS32: bb.4.b.PHI.1.1:
900   ; MIPS32:   successors: %bb.6(0x80000000)
901   ; MIPS32:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
902   ; MIPS32:   G_BR %bb.6
903   ; MIPS32: bb.5.b.PHI.1.2:
904   ; MIPS32:   successors: %bb.6(0x80000000)
905   ; MIPS32:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)
906   ; MIPS32: bb.6.b.PHI.1:
907   ; MIPS32:   successors: %bb.7(0x40000000), %bb.13(0x40000000)
908   ; MIPS32:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5
909   ; MIPS32:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
910   ; MIPS32:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
911   ; MIPS32:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C4]]
912   ; MIPS32:   G_BRCOND [[AND3]](s32), %bb.7
913   ; MIPS32:   G_BR %bb.13
914   ; MIPS32: bb.7.b.PHI.1.end:
915   ; MIPS32:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
916   ; MIPS32:   RetRA
917   ; MIPS32: bb.8.pre.PHI.2:
918   ; MIPS32:   successors: %bb.9(0x40000000), %bb.10(0x40000000)
919   ; MIPS32:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
920   ; MIPS32:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
921   ; MIPS32:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C5]]
922   ; MIPS32:   G_BRCOND [[AND4]](s32), %bb.9
923   ; MIPS32:   G_BR %bb.10
924   ; MIPS32: bb.9.b.PHI.2.0:
925   ; MIPS32:   successors: %bb.11(0x80000000)
926   ; MIPS32:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)
927   ; MIPS32:   G_BR %bb.11
928   ; MIPS32: bb.10.b.PHI.2.1:
929   ; MIPS32:   successors: %bb.11(0x80000000)
930   ; MIPS32:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)
931   ; MIPS32: bb.11.b.PHI.2:
932   ; MIPS32:   successors: %bb.13(0x40000000), %bb.12(0x40000000)
933   ; MIPS32:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.10
934   ; MIPS32:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
935   ; MIPS32:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
936   ; MIPS32:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C6]]
937   ; MIPS32:   G_BRCOND [[AND5]](s32), %bb.13
938   ; MIPS32: bb.12.b.PHI.2.end:
939   ; MIPS32:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
940   ; MIPS32:   RetRA
941   ; MIPS32: bb.13.b.PHI.3:
942   ; MIPS32:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6
943   ; MIPS32:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[C]](s64), %bb.6
944   ; MIPS32:   [[C7:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
945   ; MIPS32:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)
946   ; MIPS32:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C7]]
947   ; MIPS32:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]
948   ; MIPS32:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)
949   ; MIPS32:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C7]]
950   ; MIPS32:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]
951   ; MIPS32:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
952   ; MIPS32:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)
953   ; MIPS32:   RetRA
954   bb.1.entry:
955     liveins: $a0, $a1, $a2, $a3
957     %7:_(s32) = COPY $a0
958     %8:_(s32) = COPY $a1
959     %9:_(s32) = COPY $a2
960     %3:_(p0) = COPY $a3
961     %10:_(p0) = G_FRAME_INDEX %fixed-stack.2
962     %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)
963     %11:_(p0) = G_FRAME_INDEX %fixed-stack.1
964     %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)
965     %12:_(p0) = G_FRAME_INDEX %fixed-stack.0
966     %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)
967     %24:_(s64) = G_FCONSTANT double 0.000000e+00
968     %33:_(s32) = G_CONSTANT i32 1
969     %34:_(s32) = COPY %7(s32)
970     %32:_(s32) = G_AND %34, %33
971     G_BRCOND %32(s32), %bb.9
973   bb.2.pre.PHI.1:
974     %35:_(s32) = G_CONSTANT i32 1
975     %36:_(s32) = COPY %8(s32)
976     %31:_(s32) = G_AND %36, %35
977     G_BRCOND %31(s32), %bb.5
979   bb.3.pre.PHI.1.0:
980     %37:_(s32) = G_CONSTANT i32 1
981     %38:_(s32) = COPY %9(s32)
982     %30:_(s32) = G_AND %38, %37
983     G_BRCOND %30(s32), %bb.6
985   bb.4.b.PHI.1.0:
986     %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
987     G_BR %bb.7
989   bb.5.b.PHI.1.1:
990     %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
991     G_BR %bb.7
993   bb.6.b.PHI.1.2:
994     %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)
996   bb.7.b.PHI.1:
997     %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6
998     %39:_(s32) = G_CONSTANT i32 1
999     %40:_(s32) = COPY %9(s32)
1000     %29:_(s32) = G_AND %40, %39
1001     G_BRCOND %29(s32), %bb.8
1002     G_BR %bb.14
1004   bb.8.b.PHI.1.end:
1005     G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)
1006     RetRA
1008   bb.9.pre.PHI.2:
1009     %41:_(s32) = G_CONSTANT i32 1
1010     %42:_(s32) = COPY %7(s32)
1011     %28:_(s32) = G_AND %42, %41
1012     G_BRCOND %28(s32), %bb.10
1013     G_BR %bb.11
1015   bb.10.b.PHI.2.0:
1016     %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)
1017     G_BR %bb.12
1019   bb.11.b.PHI.2.1:
1020     %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)
1022   bb.12.b.PHI.2:
1023     %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11
1024     %43:_(s32) = G_CONSTANT i32 1
1025     %44:_(s32) = COPY %8(s32)
1026     %27:_(s32) = G_AND %44, %43
1027     G_BRCOND %27(s32), %bb.14
1029   bb.13.b.PHI.2.end:
1030     G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)
1031     RetRA
1033   bb.14.b.PHI.3:
1034     %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7
1035     %21:_(s64) = G_PHI %19(s64), %bb.12, %24(s64), %bb.7
1036     %45:_(s32) = G_CONSTANT i32 1
1037     %46:_(s32) = COPY %9(s32)
1038     %26:_(s32) = G_AND %46, %45
1039     %22:_(s64) = G_SELECT %26(s32), %20, %21
1040     %47:_(s32) = COPY %8(s32)
1041     %25:_(s32) = G_AND %47, %45
1042     %23:_(s64) = G_SELECT %25(s32), %22, %20
1043     G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)
1044     G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)
1045     RetRA