brintos

brintos / llvm-project-archived public Read only

0
0
Text · 48.4 KiB · 319bb2b Raw
1144 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS323--- |4 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.18 9  pre.PHI.1:                                        ; preds = %entry10    br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.011 12  pre.PHI.1.0:                                      ; preds = %pre.PHI.113    br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.014 15  b.PHI.1.0:                                        ; preds = %pre.PHI.1.016    %phi1.0 = load i64, ptr %a17    br label %b.PHI.118 19  b.PHI.1.1:                                        ; preds = %pre.PHI.120    %phi1.1 = load i64, ptr %b21    br label %b.PHI.122 23  b.PHI.1.2:                                        ; preds = %pre.PHI.1.024    %phi1.2 = load i64, ptr %c25    br label %b.PHI.126 27  b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.028    %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.330 31  b.PHI.1.end:                                      ; preds = %b.PHI.132    store i64 %phi1, ptr %result33    ret void34 35  pre.PHI.2:                                        ; preds = %entry36    br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.137 38  b.PHI.2.0:                                        ; preds = %pre.PHI.239    %phi2.0 = load i64, ptr %a40    br label %b.PHI.241 42  b.PHI.2.1:                                        ; preds = %pre.PHI.243    %phi2.1 = load i64, ptr %b44    br label %b.PHI.245 46  b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.047    %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.end49 50  b.PHI.2.end:                                      ; preds = %b.PHI.251    store i64 %phi2, ptr %result52    ret void53 54  b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.155    %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 %phi458    %sel_3_1.2 = select i1 %cnd1, i64 %sel_1.2, i64 %phi359    store i64 %sel_3_1.2, ptr %result60    store i64 %phi3, ptr %result61    ret void62  }63 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.167 68  pre.PHI.1:                                        ; preds = %entry69    br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.070 71  pre.PHI.1.0:                                      ; preds = %pre.PHI.172    br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.073 74  b.PHI.1.0:                                        ; preds = %pre.PHI.1.075    %phi1.0 = load i64, ptr %a76    br label %b.PHI.177 78  b.PHI.1.1:                                        ; preds = %pre.PHI.179    %phi1.1 = load i64, ptr %b80    br label %b.PHI.181 82  b.PHI.1.2:                                        ; preds = %pre.PHI.1.083    %phi1.2 = load i64, ptr %c84    br label %b.PHI.185 86  b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.087    %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.389 90  b.PHI.1.end:                                      ; preds = %b.PHI.191    store i64 %phi1, ptr %result92    ret void93 94  pre.PHI.2:                                        ; preds = %entry95    br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.196 97  b.PHI.2.0:                                        ; preds = %pre.PHI.298    %phi2.0 = load i64, ptr %a99    br label %b.PHI.2100 101  b.PHI.2.1:                                        ; preds = %pre.PHI.2102    %phi2.1 = load i64, ptr %b103    br label %b.PHI.2104 105  b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0106    %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.end108 109  b.PHI.2.end:                                      ; preds = %b.PHI.2110    store i64 %phi2, ptr %result111    ret void112 113  b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1114    %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 %phi4117    %sel_3_1.2 = select i1 %cnd1, i64 %sel_1.2, i64 %phi3118    store i64 %sel_3_1.2, ptr %result119    store i64 %phi3, ptr %result120    ret void121  }122 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.1126 127  pre.PHI.1:                                        ; preds = %entry128    br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0129 130  pre.PHI.1.0:                                      ; preds = %pre.PHI.1131    br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0132 133  b.PHI.1.0:                                        ; preds = %pre.PHI.1.0134    %phi1.0 = load double, ptr %a135    br label %b.PHI.1136 137  b.PHI.1.1:                                        ; preds = %pre.PHI.1138    %phi1.1 = load double, ptr %b139    br label %b.PHI.1140 141  b.PHI.1.2:                                        ; preds = %pre.PHI.1.0142    %phi1.2 = load double, ptr %c143    br label %b.PHI.1144 145  b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0146    %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.3148 149  b.PHI.1.end:                                      ; preds = %b.PHI.1150    store double %phi1, ptr %result151    ret void152 153  pre.PHI.2:                                        ; preds = %entry154    br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1155 156  b.PHI.2.0:                                        ; preds = %pre.PHI.2157    %phi2.0 = load double, ptr %a158    br label %b.PHI.2159 160  b.PHI.2.1:                                        ; preds = %pre.PHI.2161    %phi2.1 = load double, ptr %b162    br label %b.PHI.2163 164  b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0165    %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.end167 168  b.PHI.2.end:                                      ; preds = %b.PHI.2169    store double %phi2, ptr %result170    ret void171 172  b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1173    %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 %phi4176    %sel_3_1.2 = select i1 %cnd1, double %sel_1.2, double %phi3177    store double %sel_3_1.2, ptr %result178    store double %phi3, ptr %result179    ret void180  }181 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.1185 186  pre.PHI.1:                                        ; preds = %entry187    br i1 %cnd1, label %b.PHI.1.1, label %pre.PHI.1.0188 189  pre.PHI.1.0:                                      ; preds = %pre.PHI.1190    br i1 %cnd2, label %b.PHI.1.2, label %b.PHI.1.0191 192  b.PHI.1.0:                                        ; preds = %pre.PHI.1.0193    %phi1.0 = load double, ptr %a194    br label %b.PHI.1195 196  b.PHI.1.1:                                        ; preds = %pre.PHI.1197    %phi1.1 = load double, ptr %b198    br label %b.PHI.1199 200  b.PHI.1.2:                                        ; preds = %pre.PHI.1.0201    %phi1.2 = load double, ptr %c202    br label %b.PHI.1203 204  b.PHI.1:                                          ; preds = %b.PHI.1.2, %b.PHI.1.1, %b.PHI.1.0205    %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.3207 208  b.PHI.1.end:                                      ; preds = %b.PHI.1209    store double %phi1, ptr %result210    ret void211 212  pre.PHI.2:                                        ; preds = %entry213    br i1 %cnd0, label %b.PHI.2.0, label %b.PHI.2.1214 215  b.PHI.2.0:                                        ; preds = %pre.PHI.2216    %phi2.0 = load double, ptr %a217    br label %b.PHI.2218 219  b.PHI.2.1:                                        ; preds = %pre.PHI.2220    %phi2.1 = load double, ptr %b221    br label %b.PHI.2222 223  b.PHI.2:                                          ; preds = %b.PHI.2.1, %b.PHI.2.0224    %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.end226 227  b.PHI.2.end:                                      ; preds = %b.PHI.2228    store double %phi2, ptr %result229    ret void230 231  b.PHI.3:                                          ; preds = %b.PHI.2, %b.PHI.1232    %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 %phi4235    %sel_3_1.2 = select i1 %cnd1, double %sel_1.2, double %phi3236    store double %sel_3_1.2, ptr %result237    store double %phi3, ptr %result238    ret void239  }240 241...242---243name:            long_chain_ambiguous_i64_in_fpr244alignment:       4245legalized:       true246tracksRegLiveness: true247fixedStack: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 }251body:             |252  ; MIPS32-LABEL: name: long_chain_ambiguous_i64_in_fpr253  ; MIPS32: bb.0.entry:254  ; MIPS32-NEXT:   successors: %bb.8(0x40000000), %bb.1(0x40000000)255  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3256  ; MIPS32-NEXT: {{  $}}257  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0258  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1259  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2260  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3261  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0262  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)263  ; MIPS32-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1264  ; MIPS32-NEXT:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)265  ; MIPS32-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2266  ; MIPS32-NEXT:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)267  ; MIPS32-NEXT:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1268  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)269  ; MIPS32-NEXT:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C]]270  ; MIPS32-NEXT:   G_BRCOND [[AND]](s32), %bb.8271  ; MIPS32-NEXT: {{  $}}272  ; MIPS32-NEXT: bb.1.pre.PHI.1:273  ; MIPS32-NEXT:   successors: %bb.4(0x40000000), %bb.2(0x40000000)274  ; MIPS32-NEXT: {{  $}}275  ; MIPS32-NEXT:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1276  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)277  ; MIPS32-NEXT:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C1]]278  ; MIPS32-NEXT:   G_BRCOND [[AND1]](s32), %bb.4279  ; MIPS32-NEXT: {{  $}}280  ; MIPS32-NEXT: bb.2.pre.PHI.1.0:281  ; MIPS32-NEXT:   successors: %bb.5(0x40000000), %bb.3(0x40000000)282  ; MIPS32-NEXT: {{  $}}283  ; MIPS32-NEXT:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1284  ; MIPS32-NEXT:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)285  ; MIPS32-NEXT:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C2]]286  ; MIPS32-NEXT:   G_BRCOND [[AND2]](s32), %bb.5287  ; MIPS32-NEXT: {{  $}}288  ; MIPS32-NEXT: bb.3.b.PHI.1.0:289  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)290  ; MIPS32-NEXT: {{  $}}291  ; MIPS32-NEXT:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)292  ; MIPS32-NEXT:   G_BR %bb.6293  ; MIPS32-NEXT: {{  $}}294  ; MIPS32-NEXT: bb.4.b.PHI.1.1:295  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)296  ; MIPS32-NEXT: {{  $}}297  ; MIPS32-NEXT:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)298  ; MIPS32-NEXT:   G_BR %bb.6299  ; MIPS32-NEXT: {{  $}}300  ; MIPS32-NEXT: bb.5.b.PHI.1.2:301  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)302  ; MIPS32-NEXT: {{  $}}303  ; MIPS32-NEXT:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)304  ; MIPS32-NEXT: {{  $}}305  ; MIPS32-NEXT: bb.6.b.PHI.1:306  ; MIPS32-NEXT:   successors: %bb.7(0x40000000), %bb.13(0x40000000)307  ; MIPS32-NEXT: {{  $}}308  ; MIPS32-NEXT:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5309  ; MIPS32-NEXT:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1310  ; MIPS32-NEXT:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)311  ; MIPS32-NEXT:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C3]]312  ; MIPS32-NEXT:   G_BRCOND [[AND3]](s32), %bb.7313  ; MIPS32-NEXT:   G_BR %bb.13314  ; MIPS32-NEXT: {{  $}}315  ; MIPS32-NEXT: bb.7.b.PHI.1.end:316  ; MIPS32-NEXT:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)317  ; MIPS32-NEXT:   RetRA318  ; MIPS32-NEXT: {{  $}}319  ; MIPS32-NEXT: bb.8.pre.PHI.2:320  ; MIPS32-NEXT:   successors: %bb.9(0x40000000), %bb.10(0x40000000)321  ; MIPS32-NEXT: {{  $}}322  ; MIPS32-NEXT:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1323  ; MIPS32-NEXT:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)324  ; MIPS32-NEXT:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C4]]325  ; MIPS32-NEXT:   G_BRCOND [[AND4]](s32), %bb.9326  ; MIPS32-NEXT:   G_BR %bb.10327  ; MIPS32-NEXT: {{  $}}328  ; MIPS32-NEXT: bb.9.b.PHI.2.0:329  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)330  ; MIPS32-NEXT: {{  $}}331  ; MIPS32-NEXT:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)332  ; MIPS32-NEXT:   G_BR %bb.11333  ; MIPS32-NEXT: {{  $}}334  ; MIPS32-NEXT: bb.10.b.PHI.2.1:335  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)336  ; MIPS32-NEXT: {{  $}}337  ; MIPS32-NEXT:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)338  ; MIPS32-NEXT: {{  $}}339  ; MIPS32-NEXT: bb.11.b.PHI.2:340  ; MIPS32-NEXT:   successors: %bb.13(0x40000000), %bb.12(0x40000000)341  ; MIPS32-NEXT: {{  $}}342  ; MIPS32-NEXT:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.10343  ; MIPS32-NEXT:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1344  ; MIPS32-NEXT:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)345  ; MIPS32-NEXT:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C5]]346  ; MIPS32-NEXT:   G_BRCOND [[AND5]](s32), %bb.13347  ; MIPS32-NEXT: {{  $}}348  ; MIPS32-NEXT: bb.12.b.PHI.2.end:349  ; MIPS32-NEXT:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)350  ; MIPS32-NEXT:   RetRA351  ; MIPS32-NEXT: {{  $}}352  ; MIPS32-NEXT: bb.13.b.PHI.3:353  ; MIPS32-NEXT:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6354  ; MIPS32-NEXT:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6355  ; MIPS32-NEXT:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1356  ; MIPS32-NEXT:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)357  ; MIPS32-NEXT:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C6]]358  ; MIPS32-NEXT:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]359  ; MIPS32-NEXT:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)360  ; MIPS32-NEXT:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C6]]361  ; MIPS32-NEXT:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]362  ; MIPS32-NEXT:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)363  ; MIPS32-NEXT:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)364  ; MIPS32-NEXT:   RetRA365  bb.1.entry:366    liveins: $a0, $a1, $a2, $a3367 368    %7:_(s32) = COPY $a0369    %8:_(s32) = COPY $a1370    %9:_(s32) = COPY $a2371    %3:_(p0) = COPY $a3372    %10:_(p0) = G_FRAME_INDEX %fixed-stack.2373    %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)374    %11:_(p0) = G_FRAME_INDEX %fixed-stack.1375    %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)376    %12:_(p0) = G_FRAME_INDEX %fixed-stack.0377    %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)378    %32:_(s32) = G_CONSTANT i32 1379    %33:_(s32) = COPY %7(s32)380    %31:_(s32) = G_AND %33, %32381    G_BRCOND %31(s32), %bb.9382 383  bb.2.pre.PHI.1:384    %34:_(s32) = G_CONSTANT i32 1385    %35:_(s32) = COPY %8(s32)386    %30:_(s32) = G_AND %35, %34387    G_BRCOND %30(s32), %bb.5388 389  bb.3.pre.PHI.1.0:390    %36:_(s32) = G_CONSTANT i32 1391    %37:_(s32) = COPY %9(s32)392    %29:_(s32) = G_AND %37, %36393    G_BRCOND %29(s32), %bb.6394 395  bb.4.b.PHI.1.0:396    %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)397    G_BR %bb.7398 399  bb.5.b.PHI.1.1:400    %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)401    G_BR %bb.7402 403  bb.6.b.PHI.1.2:404    %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)405 406  bb.7.b.PHI.1:407    %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6408    %38:_(s32) = G_CONSTANT i32 1409    %39:_(s32) = COPY %9(s32)410    %28:_(s32) = G_AND %39, %38411    G_BRCOND %28(s32), %bb.8412    G_BR %bb.14413 414  bb.8.b.PHI.1.end:415    G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)416    RetRA417 418  bb.9.pre.PHI.2:419    %40:_(s32) = G_CONSTANT i32 1420    %41:_(s32) = COPY %7(s32)421    %27:_(s32) = G_AND %41, %40422    G_BRCOND %27(s32), %bb.10423    G_BR %bb.11424 425  bb.10.b.PHI.2.0:426    %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)427    G_BR %bb.12428 429  bb.11.b.PHI.2.1:430    %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)431 432  bb.12.b.PHI.2:433    %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11434    %42:_(s32) = G_CONSTANT i32 1435    %43:_(s32) = COPY %8(s32)436    %26:_(s32) = G_AND %43, %42437    G_BRCOND %26(s32), %bb.14438 439  bb.13.b.PHI.2.end:440    G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)441    RetRA442 443  bb.14.b.PHI.3:444    %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7445    %21:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7446    %44:_(s32) = G_CONSTANT i32 1447    %45:_(s32) = COPY %9(s32)448    %25:_(s32) = G_AND %45, %44449    %22:_(s64) = G_SELECT %25(s32), %20, %21450    %46:_(s32) = COPY %8(s32)451    %24:_(s32) = G_AND %46, %44452    %23:_(s64) = G_SELECT %24(s32), %22, %20453    G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)454    G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)455    RetRA456 457...458---459name:            long_chain_i64_in_gpr460alignment:       4461legalized:       true462tracksRegLiveness: true463fixedStack:464  - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }465  - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }466  - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }467body:             |468  ; MIPS32-LABEL: name: long_chain_i64_in_gpr469  ; MIPS32: bb.0.entry:470  ; MIPS32-NEXT:   successors: %bb.8(0x40000000), %bb.1(0x40000000)471  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3472  ; MIPS32-NEXT: {{  $}}473  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0474  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1475  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2476  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3477  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0478  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)479  ; MIPS32-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1480  ; MIPS32-NEXT:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)481  ; MIPS32-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2482  ; MIPS32-NEXT:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)483  ; MIPS32-NEXT:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 0484  ; MIPS32-NEXT:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1485  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)486  ; MIPS32-NEXT:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C1]]487  ; MIPS32-NEXT:   G_BRCOND [[AND]](s32), %bb.8488  ; MIPS32-NEXT: {{  $}}489  ; MIPS32-NEXT: bb.1.pre.PHI.1:490  ; MIPS32-NEXT:   successors: %bb.4(0x40000000), %bb.2(0x40000000)491  ; MIPS32-NEXT: {{  $}}492  ; MIPS32-NEXT:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1493  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)494  ; MIPS32-NEXT:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C2]]495  ; MIPS32-NEXT:   G_BRCOND [[AND1]](s32), %bb.4496  ; MIPS32-NEXT: {{  $}}497  ; MIPS32-NEXT: bb.2.pre.PHI.1.0:498  ; MIPS32-NEXT:   successors: %bb.5(0x40000000), %bb.3(0x40000000)499  ; MIPS32-NEXT: {{  $}}500  ; MIPS32-NEXT:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1501  ; MIPS32-NEXT:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)502  ; MIPS32-NEXT:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C3]]503  ; MIPS32-NEXT:   G_BRCOND [[AND2]](s32), %bb.5504  ; MIPS32-NEXT: {{  $}}505  ; MIPS32-NEXT: bb.3.b.PHI.1.0:506  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)507  ; MIPS32-NEXT: {{  $}}508  ; MIPS32-NEXT:   [[LOAD3:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY3]](p0) :: (load (s32) from %ir.a, align 8)509  ; MIPS32-NEXT:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4510  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[COPY3]], [[C4]](s32)511  ; MIPS32-NEXT:   [[LOAD4:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from %ir.a + 4, basealign 8)512  ; MIPS32-NEXT:   G_BR %bb.6513  ; MIPS32-NEXT: {{  $}}514  ; MIPS32-NEXT: bb.4.b.PHI.1.1:515  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)516  ; MIPS32-NEXT: {{  $}}517  ; MIPS32-NEXT:   [[LOAD5:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD]](p0) :: (load (s32) from %ir.b, align 8)518  ; MIPS32-NEXT:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4519  ; MIPS32-NEXT:   [[PTR_ADD1:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD]], [[C5]](s32)520  ; MIPS32-NEXT:   [[LOAD6:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD1]](p0) :: (load (s32) from %ir.b + 4, basealign 8)521  ; MIPS32-NEXT:   G_BR %bb.6522  ; MIPS32-NEXT: {{  $}}523  ; MIPS32-NEXT: bb.5.b.PHI.1.2:524  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)525  ; MIPS32-NEXT: {{  $}}526  ; MIPS32-NEXT:   [[LOAD7:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD1]](p0) :: (load (s32) from %ir.c, align 8)527  ; MIPS32-NEXT:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4528  ; MIPS32-NEXT:   [[PTR_ADD2:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD1]], [[C6]](s32)529  ; MIPS32-NEXT:   [[LOAD8:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD2]](p0) :: (load (s32) from %ir.c + 4, basealign 8)530  ; MIPS32-NEXT: {{  $}}531  ; MIPS32-NEXT: bb.6.b.PHI.1:532  ; MIPS32-NEXT:   successors: %bb.7(0x40000000), %bb.13(0x40000000)533  ; MIPS32-NEXT: {{  $}}534  ; MIPS32-NEXT:   [[PHI:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD3]](s32), %bb.3, [[LOAD5]](s32), %bb.4, [[LOAD7]](s32), %bb.5535  ; MIPS32-NEXT:   [[PHI1:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD4]](s32), %bb.3, [[LOAD6]](s32), %bb.4, [[LOAD8]](s32), %bb.5536  ; MIPS32-NEXT:   [[C7:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1537  ; MIPS32-NEXT:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)538  ; MIPS32-NEXT:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C7]]539  ; MIPS32-NEXT:   G_BRCOND [[AND3]](s32), %bb.7540  ; MIPS32-NEXT:   G_BR %bb.13541  ; MIPS32-NEXT: {{  $}}542  ; MIPS32-NEXT: bb.7.b.PHI.1.end:543  ; MIPS32-NEXT:   G_STORE [[PHI]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)544  ; MIPS32-NEXT:   [[C8:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4545  ; MIPS32-NEXT:   [[PTR_ADD3:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD2]], [[C8]](s32)546  ; MIPS32-NEXT:   G_STORE [[PHI1]](s32), [[PTR_ADD3]](p0) :: (store (s32) into %ir.result + 4, basealign 8)547  ; MIPS32-NEXT:   RetRA548  ; MIPS32-NEXT: {{  $}}549  ; MIPS32-NEXT: bb.8.pre.PHI.2:550  ; MIPS32-NEXT:   successors: %bb.9(0x40000000), %bb.10(0x40000000)551  ; MIPS32-NEXT: {{  $}}552  ; MIPS32-NEXT:   [[C9:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1553  ; MIPS32-NEXT:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)554  ; MIPS32-NEXT:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C9]]555  ; MIPS32-NEXT:   G_BRCOND [[AND4]](s32), %bb.9556  ; MIPS32-NEXT:   G_BR %bb.10557  ; MIPS32-NEXT: {{  $}}558  ; MIPS32-NEXT: bb.9.b.PHI.2.0:559  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)560  ; MIPS32-NEXT: {{  $}}561  ; MIPS32-NEXT:   [[LOAD9:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY3]](p0) :: (load (s32) from %ir.a, align 8)562  ; MIPS32-NEXT:   [[C10:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4563  ; MIPS32-NEXT:   [[PTR_ADD4:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[COPY3]], [[C10]](s32)564  ; MIPS32-NEXT:   [[LOAD10:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD4]](p0) :: (load (s32) from %ir.a + 4, basealign 8)565  ; MIPS32-NEXT:   G_BR %bb.11566  ; MIPS32-NEXT: {{  $}}567  ; MIPS32-NEXT: bb.10.b.PHI.2.1:568  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)569  ; MIPS32-NEXT: {{  $}}570  ; MIPS32-NEXT:   [[LOAD11:%[0-9]+]]:gprb(s32) = G_LOAD [[LOAD]](p0) :: (load (s32) from %ir.b, align 8)571  ; MIPS32-NEXT:   [[C11:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4572  ; MIPS32-NEXT:   [[PTR_ADD5:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD]], [[C11]](s32)573  ; MIPS32-NEXT:   [[LOAD12:%[0-9]+]]:gprb(s32) = G_LOAD [[PTR_ADD5]](p0) :: (load (s32) from %ir.b + 4, basealign 8)574  ; MIPS32-NEXT: {{  $}}575  ; MIPS32-NEXT: bb.11.b.PHI.2:576  ; MIPS32-NEXT:   successors: %bb.13(0x40000000), %bb.12(0x40000000)577  ; MIPS32-NEXT: {{  $}}578  ; MIPS32-NEXT:   [[PHI2:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD9]](s32), %bb.9, [[LOAD11]](s32), %bb.10579  ; MIPS32-NEXT:   [[PHI3:%[0-9]+]]:gprb(s32) = G_PHI [[LOAD10]](s32), %bb.9, [[LOAD12]](s32), %bb.10580  ; MIPS32-NEXT:   [[C12:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1581  ; MIPS32-NEXT:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)582  ; MIPS32-NEXT:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C12]]583  ; MIPS32-NEXT:   G_BRCOND [[AND5]](s32), %bb.13584  ; MIPS32-NEXT: {{  $}}585  ; MIPS32-NEXT: bb.12.b.PHI.2.end:586  ; MIPS32-NEXT:   G_STORE [[PHI2]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)587  ; MIPS32-NEXT:   [[C13:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4588  ; MIPS32-NEXT:   [[PTR_ADD6:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD2]], [[C13]](s32)589  ; MIPS32-NEXT:   G_STORE [[PHI3]](s32), [[PTR_ADD6]](p0) :: (store (s32) into %ir.result + 4, basealign 8)590  ; MIPS32-NEXT:   RetRA591  ; MIPS32-NEXT: {{  $}}592  ; MIPS32-NEXT: bb.13.b.PHI.3:593  ; MIPS32-NEXT:   [[PHI4:%[0-9]+]]:gprb(s32) = G_PHI [[PHI2]](s32), %bb.11, [[PHI]](s32), %bb.6594  ; MIPS32-NEXT:   [[PHI5:%[0-9]+]]:gprb(s32) = G_PHI [[PHI3]](s32), %bb.11, [[PHI1]](s32), %bb.6595  ; MIPS32-NEXT:   [[PHI6:%[0-9]+]]:gprb(s32) = G_PHI [[PHI2]](s32), %bb.11, [[C]](s32), %bb.6596  ; MIPS32-NEXT:   [[PHI7:%[0-9]+]]:gprb(s32) = G_PHI [[PHI3]](s32), %bb.11, [[C]](s32), %bb.6597  ; MIPS32-NEXT:   [[C14:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1598  ; MIPS32-NEXT:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)599  ; MIPS32-NEXT:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C14]]600  ; MIPS32-NEXT:   [[SELECT:%[0-9]+]]:gprb(s32) = G_SELECT [[AND6]](s32), [[PHI4]], [[PHI6]]601  ; MIPS32-NEXT:   [[SELECT1:%[0-9]+]]:gprb(s32) = G_SELECT [[AND6]](s32), [[PHI5]], [[PHI7]]602  ; MIPS32-NEXT:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)603  ; MIPS32-NEXT:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C14]]604  ; MIPS32-NEXT:   [[SELECT2:%[0-9]+]]:gprb(s32) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI4]]605  ; MIPS32-NEXT:   [[SELECT3:%[0-9]+]]:gprb(s32) = G_SELECT [[AND7]](s32), [[SELECT1]], [[PHI5]]606  ; MIPS32-NEXT:   G_STORE [[SELECT2]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)607  ; MIPS32-NEXT:   [[C15:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4608  ; MIPS32-NEXT:   [[PTR_ADD7:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD2]], [[C15]](s32)609  ; MIPS32-NEXT:   G_STORE [[SELECT3]](s32), [[PTR_ADD7]](p0) :: (store (s32) into %ir.result + 4, basealign 8)610  ; MIPS32-NEXT:   G_STORE [[PHI4]](s32), [[LOAD2]](p0) :: (store (s32) into %ir.result, align 8)611  ; MIPS32-NEXT:   [[C16:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 4612  ; MIPS32-NEXT:   [[PTR_ADD8:%[0-9]+]]:gprb(p0) = nuw inbounds G_PTR_ADD [[LOAD2]], [[C16]](s32)613  ; MIPS32-NEXT:   G_STORE [[PHI5]](s32), [[PTR_ADD8]](p0) :: (store (s32) into %ir.result + 4, basealign 8)614  ; MIPS32-NEXT:   RetRA615  bb.1.entry:616    liveins: $a0, $a1, $a2, $a3617 618    %7:_(s32) = COPY $a0619    %8:_(s32) = COPY $a1620    %9:_(s32) = COPY $a2621    %3:_(p0) = COPY $a3622    %10:_(p0) = G_FRAME_INDEX %fixed-stack.2623    %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)624    %11:_(p0) = G_FRAME_INDEX %fixed-stack.1625    %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)626    %12:_(p0) = G_FRAME_INDEX %fixed-stack.0627    %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)628    %33:_(s32) = G_CONSTANT i32 0629    %24:_(s64) = G_MERGE_VALUES %33(s32), %33(s32)630    %34:_(s32) = G_CONSTANT i32 1631    %35:_(s32) = COPY %7(s32)632    %32:_(s32) = G_AND %35, %34633    G_BRCOND %32(s32), %bb.9634 635  bb.2.pre.PHI.1:636    %36:_(s32) = G_CONSTANT i32 1637    %37:_(s32) = COPY %8(s32)638    %31:_(s32) = G_AND %37, %36639    G_BRCOND %31(s32), %bb.5640 641  bb.3.pre.PHI.1.0:642    %38:_(s32) = G_CONSTANT i32 1643    %39:_(s32) = COPY %9(s32)644    %30:_(s32) = G_AND %39, %38645    G_BRCOND %30(s32), %bb.6646 647  bb.4.b.PHI.1.0:648    %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)649    G_BR %bb.7650 651  bb.5.b.PHI.1.1:652    %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)653    G_BR %bb.7654 655  bb.6.b.PHI.1.2:656    %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)657 658  bb.7.b.PHI.1:659    %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6660    %40:_(s32) = G_CONSTANT i32 1661    %41:_(s32) = COPY %9(s32)662    %29:_(s32) = G_AND %41, %40663    G_BRCOND %29(s32), %bb.8664    G_BR %bb.14665 666  bb.8.b.PHI.1.end:667    G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)668    RetRA669 670  bb.9.pre.PHI.2:671    %42:_(s32) = G_CONSTANT i32 1672    %43:_(s32) = COPY %7(s32)673    %28:_(s32) = G_AND %43, %42674    G_BRCOND %28(s32), %bb.10675    G_BR %bb.11676 677  bb.10.b.PHI.2.0:678    %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)679    G_BR %bb.12680 681  bb.11.b.PHI.2.1:682    %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)683 684  bb.12.b.PHI.2:685    %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11686    %44:_(s32) = G_CONSTANT i32 1687    %45:_(s32) = COPY %8(s32)688    %27:_(s32) = G_AND %45, %44689    G_BRCOND %27(s32), %bb.14690 691  bb.13.b.PHI.2.end:692    G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)693    RetRA694 695  bb.14.b.PHI.3:696    %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7697    %21:_(s64) = G_PHI %19(s64), %bb.12, %24(s64), %bb.7698    %46:_(s32) = G_CONSTANT i32 1699    %47:_(s32) = COPY %9(s32)700    %26:_(s32) = G_AND %47, %46701    %22:_(s64) = G_SELECT %26(s32), %20, %21702    %48:_(s32) = COPY %8(s32)703    %25:_(s32) = G_AND %48, %46704    %23:_(s64) = G_SELECT %25(s32), %22, %20705    G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)706    G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)707    RetRA708 709...710---711name:            long_chain_ambiguous_double_in_fpr712alignment:       4713legalized:       true714tracksRegLiveness: true715fixedStack:716  - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }717  - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }718  - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }719body:             |720  ; MIPS32-LABEL: name: long_chain_ambiguous_double_in_fpr721  ; MIPS32: bb.0.entry:722  ; MIPS32-NEXT:   successors: %bb.8(0x40000000), %bb.1(0x40000000)723  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3724  ; MIPS32-NEXT: {{  $}}725  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0726  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1727  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2728  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3729  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0730  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)731  ; MIPS32-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1732  ; MIPS32-NEXT:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)733  ; MIPS32-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2734  ; MIPS32-NEXT:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)735  ; MIPS32-NEXT:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1736  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)737  ; MIPS32-NEXT:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C]]738  ; MIPS32-NEXT:   G_BRCOND [[AND]](s32), %bb.8739  ; MIPS32-NEXT: {{  $}}740  ; MIPS32-NEXT: bb.1.pre.PHI.1:741  ; MIPS32-NEXT:   successors: %bb.4(0x40000000), %bb.2(0x40000000)742  ; MIPS32-NEXT: {{  $}}743  ; MIPS32-NEXT:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1744  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)745  ; MIPS32-NEXT:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C1]]746  ; MIPS32-NEXT:   G_BRCOND [[AND1]](s32), %bb.4747  ; MIPS32-NEXT: {{  $}}748  ; MIPS32-NEXT: bb.2.pre.PHI.1.0:749  ; MIPS32-NEXT:   successors: %bb.5(0x40000000), %bb.3(0x40000000)750  ; MIPS32-NEXT: {{  $}}751  ; MIPS32-NEXT:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1752  ; MIPS32-NEXT:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)753  ; MIPS32-NEXT:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C2]]754  ; MIPS32-NEXT:   G_BRCOND [[AND2]](s32), %bb.5755  ; MIPS32-NEXT: {{  $}}756  ; MIPS32-NEXT: bb.3.b.PHI.1.0:757  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)758  ; MIPS32-NEXT: {{  $}}759  ; MIPS32-NEXT:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)760  ; MIPS32-NEXT:   G_BR %bb.6761  ; MIPS32-NEXT: {{  $}}762  ; MIPS32-NEXT: bb.4.b.PHI.1.1:763  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)764  ; MIPS32-NEXT: {{  $}}765  ; MIPS32-NEXT:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)766  ; MIPS32-NEXT:   G_BR %bb.6767  ; MIPS32-NEXT: {{  $}}768  ; MIPS32-NEXT: bb.5.b.PHI.1.2:769  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)770  ; MIPS32-NEXT: {{  $}}771  ; MIPS32-NEXT:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)772  ; MIPS32-NEXT: {{  $}}773  ; MIPS32-NEXT: bb.6.b.PHI.1:774  ; MIPS32-NEXT:   successors: %bb.7(0x40000000), %bb.13(0x40000000)775  ; MIPS32-NEXT: {{  $}}776  ; MIPS32-NEXT:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5777  ; MIPS32-NEXT:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1778  ; MIPS32-NEXT:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)779  ; MIPS32-NEXT:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C3]]780  ; MIPS32-NEXT:   G_BRCOND [[AND3]](s32), %bb.7781  ; MIPS32-NEXT:   G_BR %bb.13782  ; MIPS32-NEXT: {{  $}}783  ; MIPS32-NEXT: bb.7.b.PHI.1.end:784  ; MIPS32-NEXT:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)785  ; MIPS32-NEXT:   RetRA786  ; MIPS32-NEXT: {{  $}}787  ; MIPS32-NEXT: bb.8.pre.PHI.2:788  ; MIPS32-NEXT:   successors: %bb.9(0x40000000), %bb.10(0x40000000)789  ; MIPS32-NEXT: {{  $}}790  ; MIPS32-NEXT:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1791  ; MIPS32-NEXT:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)792  ; MIPS32-NEXT:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C4]]793  ; MIPS32-NEXT:   G_BRCOND [[AND4]](s32), %bb.9794  ; MIPS32-NEXT:   G_BR %bb.10795  ; MIPS32-NEXT: {{  $}}796  ; MIPS32-NEXT: bb.9.b.PHI.2.0:797  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)798  ; MIPS32-NEXT: {{  $}}799  ; MIPS32-NEXT:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)800  ; MIPS32-NEXT:   G_BR %bb.11801  ; MIPS32-NEXT: {{  $}}802  ; MIPS32-NEXT: bb.10.b.PHI.2.1:803  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)804  ; MIPS32-NEXT: {{  $}}805  ; MIPS32-NEXT:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)806  ; MIPS32-NEXT: {{  $}}807  ; MIPS32-NEXT: bb.11.b.PHI.2:808  ; MIPS32-NEXT:   successors: %bb.13(0x40000000), %bb.12(0x40000000)809  ; MIPS32-NEXT: {{  $}}810  ; MIPS32-NEXT:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.10811  ; MIPS32-NEXT:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1812  ; MIPS32-NEXT:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)813  ; MIPS32-NEXT:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C5]]814  ; MIPS32-NEXT:   G_BRCOND [[AND5]](s32), %bb.13815  ; MIPS32-NEXT: {{  $}}816  ; MIPS32-NEXT: bb.12.b.PHI.2.end:817  ; MIPS32-NEXT:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)818  ; MIPS32-NEXT:   RetRA819  ; MIPS32-NEXT: {{  $}}820  ; MIPS32-NEXT: bb.13.b.PHI.3:821  ; MIPS32-NEXT:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6822  ; MIPS32-NEXT:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.6823  ; MIPS32-NEXT:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1824  ; MIPS32-NEXT:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)825  ; MIPS32-NEXT:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C6]]826  ; MIPS32-NEXT:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]827  ; MIPS32-NEXT:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)828  ; MIPS32-NEXT:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C6]]829  ; MIPS32-NEXT:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]830  ; MIPS32-NEXT:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)831  ; MIPS32-NEXT:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)832  ; MIPS32-NEXT:   RetRA833  bb.1.entry:834    liveins: $a0, $a1, $a2, $a3835 836    %7:_(s32) = COPY $a0837    %8:_(s32) = COPY $a1838    %9:_(s32) = COPY $a2839    %3:_(p0) = COPY $a3840    %10:_(p0) = G_FRAME_INDEX %fixed-stack.2841    %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)842    %11:_(p0) = G_FRAME_INDEX %fixed-stack.1843    %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)844    %12:_(p0) = G_FRAME_INDEX %fixed-stack.0845    %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)846    %32:_(s32) = G_CONSTANT i32 1847    %33:_(s32) = COPY %7(s32)848    %31:_(s32) = G_AND %33, %32849    G_BRCOND %31(s32), %bb.9850 851  bb.2.pre.PHI.1:852    %34:_(s32) = G_CONSTANT i32 1853    %35:_(s32) = COPY %8(s32)854    %30:_(s32) = G_AND %35, %34855    G_BRCOND %30(s32), %bb.5856 857  bb.3.pre.PHI.1.0:858    %36:_(s32) = G_CONSTANT i32 1859    %37:_(s32) = COPY %9(s32)860    %29:_(s32) = G_AND %37, %36861    G_BRCOND %29(s32), %bb.6862 863  bb.4.b.PHI.1.0:864    %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)865    G_BR %bb.7866 867  bb.5.b.PHI.1.1:868    %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)869    G_BR %bb.7870 871  bb.6.b.PHI.1.2:872    %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)873 874  bb.7.b.PHI.1:875    %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.6876    %38:_(s32) = G_CONSTANT i32 1877    %39:_(s32) = COPY %9(s32)878    %28:_(s32) = G_AND %39, %38879    G_BRCOND %28(s32), %bb.8880    G_BR %bb.14881 882  bb.8.b.PHI.1.end:883    G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)884    RetRA885 886  bb.9.pre.PHI.2:887    %40:_(s32) = G_CONSTANT i32 1888    %41:_(s32) = COPY %7(s32)889    %27:_(s32) = G_AND %41, %40890    G_BRCOND %27(s32), %bb.10891    G_BR %bb.11892 893  bb.10.b.PHI.2.0:894    %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)895    G_BR %bb.12896 897  bb.11.b.PHI.2.1:898    %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)899 900  bb.12.b.PHI.2:901    %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.11902    %42:_(s32) = G_CONSTANT i32 1903    %43:_(s32) = COPY %8(s32)904    %26:_(s32) = G_AND %43, %42905    G_BRCOND %26(s32), %bb.14906 907  bb.13.b.PHI.2.end:908    G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)909    RetRA910 911  bb.14.b.PHI.3:912    %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7913    %21:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.7914    %44:_(s32) = G_CONSTANT i32 1915    %45:_(s32) = COPY %9(s32)916    %25:_(s32) = G_AND %45, %44917    %22:_(s64) = G_SELECT %25(s32), %20, %21918    %46:_(s32) = COPY %8(s32)919    %24:_(s32) = G_AND %46, %44920    %23:_(s64) = G_SELECT %24(s32), %22, %20921    G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)922    G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)923    RetRA924 925...926---927name:            long_chain_double_in_fpr928alignment:       4929legalized:       true930tracksRegLiveness: true931fixedStack:932  - { id: 0, offset: 24, size: 4, alignment: 8, isImmutable: true }933  - { id: 1, offset: 20, size: 4, alignment: 4, isImmutable: true }934  - { id: 2, offset: 16, size: 4, alignment: 8, isImmutable: true }935body:             |936  ; MIPS32-LABEL: name: long_chain_double_in_fpr937  ; MIPS32: bb.0.entry:938  ; MIPS32-NEXT:   successors: %bb.8(0x40000000), %bb.1(0x40000000)939  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3940  ; MIPS32-NEXT: {{  $}}941  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0942  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1943  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2944  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:gprb(p0) = COPY $a3945  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.0946  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX]](p0) :: (load (p0) from %fixed-stack.0, align 8)947  ; MIPS32-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.1948  ; MIPS32-NEXT:   [[LOAD1:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (p0) from %fixed-stack.1)949  ; MIPS32-NEXT:   [[FRAME_INDEX2:%[0-9]+]]:gprb(p0) = G_FRAME_INDEX %fixed-stack.2950  ; MIPS32-NEXT:   [[LOAD2:%[0-9]+]]:gprb(p0) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (p0) from %fixed-stack.2, align 8)951  ; MIPS32-NEXT:   [[C:%[0-9]+]]:fprb(s64) = G_FCONSTANT double 0.000000e+00952  ; MIPS32-NEXT:   [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1953  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)954  ; MIPS32-NEXT:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY4]], [[C1]]955  ; MIPS32-NEXT:   G_BRCOND [[AND]](s32), %bb.8956  ; MIPS32-NEXT: {{  $}}957  ; MIPS32-NEXT: bb.1.pre.PHI.1:958  ; MIPS32-NEXT:   successors: %bb.4(0x40000000), %bb.2(0x40000000)959  ; MIPS32-NEXT: {{  $}}960  ; MIPS32-NEXT:   [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1961  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)962  ; MIPS32-NEXT:   [[AND1:%[0-9]+]]:gprb(s32) = G_AND [[COPY5]], [[C2]]963  ; MIPS32-NEXT:   G_BRCOND [[AND1]](s32), %bb.4964  ; MIPS32-NEXT: {{  $}}965  ; MIPS32-NEXT: bb.2.pre.PHI.1.0:966  ; MIPS32-NEXT:   successors: %bb.5(0x40000000), %bb.3(0x40000000)967  ; MIPS32-NEXT: {{  $}}968  ; MIPS32-NEXT:   [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1969  ; MIPS32-NEXT:   [[COPY6:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)970  ; MIPS32-NEXT:   [[AND2:%[0-9]+]]:gprb(s32) = G_AND [[COPY6]], [[C3]]971  ; MIPS32-NEXT:   G_BRCOND [[AND2]](s32), %bb.5972  ; MIPS32-NEXT: {{  $}}973  ; MIPS32-NEXT: bb.3.b.PHI.1.0:974  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)975  ; MIPS32-NEXT: {{  $}}976  ; MIPS32-NEXT:   [[LOAD3:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)977  ; MIPS32-NEXT:   G_BR %bb.6978  ; MIPS32-NEXT: {{  $}}979  ; MIPS32-NEXT: bb.4.b.PHI.1.1:980  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)981  ; MIPS32-NEXT: {{  $}}982  ; MIPS32-NEXT:   [[LOAD4:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)983  ; MIPS32-NEXT:   G_BR %bb.6984  ; MIPS32-NEXT: {{  $}}985  ; MIPS32-NEXT: bb.5.b.PHI.1.2:986  ; MIPS32-NEXT:   successors: %bb.6(0x80000000)987  ; MIPS32-NEXT: {{  $}}988  ; MIPS32-NEXT:   [[LOAD5:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD1]](p0) :: (load (s64) from %ir.c)989  ; MIPS32-NEXT: {{  $}}990  ; MIPS32-NEXT: bb.6.b.PHI.1:991  ; MIPS32-NEXT:   successors: %bb.7(0x40000000), %bb.13(0x40000000)992  ; MIPS32-NEXT: {{  $}}993  ; MIPS32-NEXT:   [[PHI:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD3]](s64), %bb.3, [[LOAD4]](s64), %bb.4, [[LOAD5]](s64), %bb.5994  ; MIPS32-NEXT:   [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1995  ; MIPS32-NEXT:   [[COPY7:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)996  ; MIPS32-NEXT:   [[AND3:%[0-9]+]]:gprb(s32) = G_AND [[COPY7]], [[C4]]997  ; MIPS32-NEXT:   G_BRCOND [[AND3]](s32), %bb.7998  ; MIPS32-NEXT:   G_BR %bb.13999  ; MIPS32-NEXT: {{  $}}1000  ; MIPS32-NEXT: bb.7.b.PHI.1.end:1001  ; MIPS32-NEXT:   G_STORE [[PHI]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)1002  ; MIPS32-NEXT:   RetRA1003  ; MIPS32-NEXT: {{  $}}1004  ; MIPS32-NEXT: bb.8.pre.PHI.2:1005  ; MIPS32-NEXT:   successors: %bb.9(0x40000000), %bb.10(0x40000000)1006  ; MIPS32-NEXT: {{  $}}1007  ; MIPS32-NEXT:   [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 11008  ; MIPS32-NEXT:   [[COPY8:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)1009  ; MIPS32-NEXT:   [[AND4:%[0-9]+]]:gprb(s32) = G_AND [[COPY8]], [[C5]]1010  ; MIPS32-NEXT:   G_BRCOND [[AND4]](s32), %bb.91011  ; MIPS32-NEXT:   G_BR %bb.101012  ; MIPS32-NEXT: {{  $}}1013  ; MIPS32-NEXT: bb.9.b.PHI.2.0:1014  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)1015  ; MIPS32-NEXT: {{  $}}1016  ; MIPS32-NEXT:   [[LOAD6:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY3]](p0) :: (load (s64) from %ir.a)1017  ; MIPS32-NEXT:   G_BR %bb.111018  ; MIPS32-NEXT: {{  $}}1019  ; MIPS32-NEXT: bb.10.b.PHI.2.1:1020  ; MIPS32-NEXT:   successors: %bb.11(0x80000000)1021  ; MIPS32-NEXT: {{  $}}1022  ; MIPS32-NEXT:   [[LOAD7:%[0-9]+]]:fprb(s64) = G_LOAD [[LOAD]](p0) :: (load (s64) from %ir.b)1023  ; MIPS32-NEXT: {{  $}}1024  ; MIPS32-NEXT: bb.11.b.PHI.2:1025  ; MIPS32-NEXT:   successors: %bb.13(0x40000000), %bb.12(0x40000000)1026  ; MIPS32-NEXT: {{  $}}1027  ; MIPS32-NEXT:   [[PHI1:%[0-9]+]]:fprb(s64) = G_PHI [[LOAD6]](s64), %bb.9, [[LOAD7]](s64), %bb.101028  ; MIPS32-NEXT:   [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 11029  ; MIPS32-NEXT:   [[COPY9:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)1030  ; MIPS32-NEXT:   [[AND5:%[0-9]+]]:gprb(s32) = G_AND [[COPY9]], [[C6]]1031  ; MIPS32-NEXT:   G_BRCOND [[AND5]](s32), %bb.131032  ; MIPS32-NEXT: {{  $}}1033  ; MIPS32-NEXT: bb.12.b.PHI.2.end:1034  ; MIPS32-NEXT:   G_STORE [[PHI1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)1035  ; MIPS32-NEXT:   RetRA1036  ; MIPS32-NEXT: {{  $}}1037  ; MIPS32-NEXT: bb.13.b.PHI.3:1038  ; MIPS32-NEXT:   [[PHI2:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[PHI]](s64), %bb.61039  ; MIPS32-NEXT:   [[PHI3:%[0-9]+]]:fprb(s64) = G_PHI [[PHI1]](s64), %bb.11, [[C]](s64), %bb.61040  ; MIPS32-NEXT:   [[C7:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 11041  ; MIPS32-NEXT:   [[COPY10:%[0-9]+]]:gprb(s32) = COPY [[COPY2]](s32)1042  ; MIPS32-NEXT:   [[AND6:%[0-9]+]]:gprb(s32) = G_AND [[COPY10]], [[C7]]1043  ; MIPS32-NEXT:   [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND6]](s32), [[PHI2]], [[PHI3]]1044  ; MIPS32-NEXT:   [[COPY11:%[0-9]+]]:gprb(s32) = COPY [[COPY1]](s32)1045  ; MIPS32-NEXT:   [[AND7:%[0-9]+]]:gprb(s32) = G_AND [[COPY11]], [[C7]]1046  ; MIPS32-NEXT:   [[SELECT1:%[0-9]+]]:fprb(s64) = G_SELECT [[AND7]](s32), [[SELECT]], [[PHI2]]1047  ; MIPS32-NEXT:   G_STORE [[SELECT1]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)1048  ; MIPS32-NEXT:   G_STORE [[PHI2]](s64), [[LOAD2]](p0) :: (store (s64) into %ir.result)1049  ; MIPS32-NEXT:   RetRA1050  bb.1.entry:1051    liveins: $a0, $a1, $a2, $a31052 1053    %7:_(s32) = COPY $a01054    %8:_(s32) = COPY $a11055    %9:_(s32) = COPY $a21056    %3:_(p0) = COPY $a31057    %10:_(p0) = G_FRAME_INDEX %fixed-stack.21058    %4:_(p0) = G_LOAD %10(p0) :: (load (p0) from %fixed-stack.2, align 8)1059    %11:_(p0) = G_FRAME_INDEX %fixed-stack.11060    %5:_(p0) = G_LOAD %11(p0) :: (load (p0) from %fixed-stack.1)1061    %12:_(p0) = G_FRAME_INDEX %fixed-stack.01062    %6:_(p0) = G_LOAD %12(p0) :: (load (p0) from %fixed-stack.0, align 8)1063    %24:_(s64) = G_FCONSTANT double 0.000000e+001064    %33:_(s32) = G_CONSTANT i32 11065    %34:_(s32) = COPY %7(s32)1066    %32:_(s32) = G_AND %34, %331067    G_BRCOND %32(s32), %bb.91068 1069  bb.2.pre.PHI.1:1070    %35:_(s32) = G_CONSTANT i32 11071    %36:_(s32) = COPY %8(s32)1072    %31:_(s32) = G_AND %36, %351073    G_BRCOND %31(s32), %bb.51074 1075  bb.3.pre.PHI.1.0:1076    %37:_(s32) = G_CONSTANT i32 11077    %38:_(s32) = COPY %9(s32)1078    %30:_(s32) = G_AND %38, %371079    G_BRCOND %30(s32), %bb.61080 1081  bb.4.b.PHI.1.0:1082    %13:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)1083    G_BR %bb.71084 1085  bb.5.b.PHI.1.1:1086    %15:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)1087    G_BR %bb.71088 1089  bb.6.b.PHI.1.2:1090    %14:_(s64) = G_LOAD %5(p0) :: (load (s64) from %ir.c)1091 1092  bb.7.b.PHI.1:1093    %16:_(s64) = G_PHI %13(s64), %bb.4, %15(s64), %bb.5, %14(s64), %bb.61094    %39:_(s32) = G_CONSTANT i32 11095    %40:_(s32) = COPY %9(s32)1096    %29:_(s32) = G_AND %40, %391097    G_BRCOND %29(s32), %bb.81098    G_BR %bb.141099 1100  bb.8.b.PHI.1.end:1101    G_STORE %16(s64), %6(p0) :: (store (s64) into %ir.result)1102    RetRA1103 1104  bb.9.pre.PHI.2:1105    %41:_(s32) = G_CONSTANT i32 11106    %42:_(s32) = COPY %7(s32)1107    %28:_(s32) = G_AND %42, %411108    G_BRCOND %28(s32), %bb.101109    G_BR %bb.111110 1111  bb.10.b.PHI.2.0:1112    %18:_(s64) = G_LOAD %3(p0) :: (load (s64) from %ir.a)1113    G_BR %bb.121114 1115  bb.11.b.PHI.2.1:1116    %17:_(s64) = G_LOAD %4(p0) :: (load (s64) from %ir.b)1117 1118  bb.12.b.PHI.2:1119    %19:_(s64) = G_PHI %18(s64), %bb.10, %17(s64), %bb.111120    %43:_(s32) = G_CONSTANT i32 11121    %44:_(s32) = COPY %8(s32)1122    %27:_(s32) = G_AND %44, %431123    G_BRCOND %27(s32), %bb.141124 1125  bb.13.b.PHI.2.end:1126    G_STORE %19(s64), %6(p0) :: (store (s64) into %ir.result)1127    RetRA1128 1129  bb.14.b.PHI.3:1130    %20:_(s64) = G_PHI %19(s64), %bb.12, %16(s64), %bb.71131    %21:_(s64) = G_PHI %19(s64), %bb.12, %24(s64), %bb.71132    %45:_(s32) = G_CONSTANT i32 11133    %46:_(s32) = COPY %9(s32)1134    %26:_(s32) = G_AND %46, %451135    %22:_(s64) = G_SELECT %26(s32), %20, %211136    %47:_(s32) = COPY %8(s32)1137    %25:_(s32) = G_AND %47, %451138    %23:_(s64) = G_SELECT %25(s32), %22, %201139    G_STORE %23(s64), %6(p0) :: (store (s64) into %ir.result)1140    G_STORE %20(s64), %6(p0) :: (store (s64) into %ir.result)1141    RetRA1142 1143...1144