brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.4 KiB · c8f73af Raw
623 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN:   | FileCheck %s4 5--- |6  define i1 @phi_i1(i1 %cnd, i1 %a, i1 %b) {7  entry:8    br i1 %cnd, label %cond.end, label %cond.false9 10  cond.false:                                       ; preds = %entry11    br label %cond.end12 13  cond.end:                                         ; preds = %entry, %cond.false14    %cond = phi i1 [ %b, %cond.false ], [ %a, %entry ]15    ret i1 %cond16  }17 18  define i8 @phi_i8(i1 %cnd, i8 %a, i8 %b) {19  entry:20    br i1 %cnd, label %cond.end, label %cond.false21 22  cond.false:                                       ; preds = %entry23    br label %cond.end24 25  cond.end:                                         ; preds = %entry, %cond.false26    %cond = phi i8 [ %b, %cond.false ], [ %a, %entry ]27    ret i8 %cond28  }29 30  define i16 @phi_i16(i1 %cnd, i16 %a, i16 %b) {31  entry:32    br i1 %cnd, label %cond.end, label %cond.false33 34  cond.false:                                       ; preds = %entry35    br label %cond.end36 37  cond.end:                                         ; preds = %entry, %cond.false38    %cond = phi i16 [ %b, %cond.false ], [ %a, %entry ]39    ret i16 %cond40  }41 42  define i32 @phi_i32(i1 %cnd, i32 %a, i32 %b) {43  entry:44    br i1 %cnd, label %cond.end, label %cond.false45 46  cond.false:                                       ; preds = %entry47    br label %cond.end48 49  cond.end:                                         ; preds = %entry, %cond.false50    %cond = phi i32 [ %b, %cond.false ], [ %a, %entry ]51    ret i32 %cond52  }53 54  define ptr @phi_ptr(i1 %cnd, ptr %a, ptr %b) {55  entry:56    br i1 %cnd, label %cond.end, label %cond.false57 58  cond.false:                                       ; preds = %entry59    br label %cond.end60 61  cond.end:                                         ; preds = %entry, %cond.false62    %cond = phi ptr [ %b, %cond.false ], [ %a, %entry ]63    ret ptr %cond64  }65 66  define i48 @phi_i48(i1 %cnd, i48 %a, i48 %b) {67  entry:68    br i1 %cnd, label %cond.end, label %cond.false69 70  cond.false:                                       ; preds = %entry71    br label %cond.end72 73  cond.end:                                         ; preds = %entry, %cond.false74    %cond = phi i48 [ %b, %cond.false ], [ %a, %entry ]75    ret i48 %cond76  }77 78  define i64 @phi_i64(i1 %cnd, i64 %a, i64 %b) {79  entry:80    br i1 %cnd, label %cond.end, label %cond.false81 82  cond.false:                                       ; preds = %entry83    br label %cond.end84 85  cond.end:                                         ; preds = %entry, %cond.false86    %cond = phi i64 [ %b, %cond.false ], [ %a, %entry ]87    ret i64 %cond88  }89 90  define i72 @phi_i72(i1 %cnd, i72 %a, i72 %b) {91  entry:92    br i1 %cnd, label %cond.end, label %cond.false93 94  cond.false:                                       ; preds = %entry95    br label %cond.end96 97  cond.end:                                         ; preds = %entry, %cond.false98    %cond = phi i72 [ %b, %cond.false ], [ %a, %entry ]99    ret i72 %cond100  }101 102...103---104name:            phi_i1105alignment:       4106tracksRegLiveness: true107registers:108  - { id: 0, class: _ }109  - { id: 1, class: _ }110  - { id: 2, class: _ }111  - { id: 3, class: _ }112  - { id: 4, class: _ }113  - { id: 5, class: _ }114  - { id: 6, class: _ }115  - { id: 7, class: _ }116frameInfo:117  maxAlignment:    1118machineFunctionInfo:119  varArgsFrameIndex: 0120  varArgsSaveSize: 0121body:             |122  ; CHECK-LABEL: name: phi_i1123  ; CHECK: bb.0.entry:124  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)125  ; CHECK-NEXT:   liveins: $x10, $x11, $x12126  ; CHECK-NEXT: {{  $}}127  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10128  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11129  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12130  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1131  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]132  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2133  ; CHECK-NEXT:   G_BR %bb.1134  ; CHECK-NEXT: {{  $}}135  ; CHECK-NEXT: bb.1.cond.false:136  ; CHECK-NEXT:   successors: %bb.2(0x80000000)137  ; CHECK-NEXT: {{  $}}138  ; CHECK-NEXT: bb.2.cond.end:139  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0140  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)141  ; CHECK-NEXT:   PseudoRET implicit $x10142  bb.1.entry:143    liveins: $x10, $x11, $x12144 145    %3:_(s32) = COPY $x10146    %0:_(s1) = G_TRUNC %3(s32)147    %4:_(s32) = COPY $x11148    %1:_(s1) = G_TRUNC %4(s32)149    %5:_(s32) = COPY $x12150    %2:_(s1) = G_TRUNC %5(s32)151    G_BRCOND %0(s1), %bb.3152    G_BR %bb.2153 154  bb.2.cond.false:155 156  bb.3.cond.end:157    %6:_(s1) = G_PHI %2(s1), %bb.2, %1(s1), %bb.1158    %7:_(s32) = G_ANYEXT %6(s1)159    $x10 = COPY %7(s32)160    PseudoRET implicit $x10161 162...163---164name:            phi_i8165alignment:       4166tracksRegLiveness: true167registers:168  - { id: 0, class: _ }169  - { id: 1, class: _ }170  - { id: 2, class: _ }171  - { id: 3, class: _ }172  - { id: 4, class: _ }173  - { id: 5, class: _ }174  - { id: 6, class: _ }175  - { id: 7, class: _ }176frameInfo:177  maxAlignment:    1178machineFunctionInfo:179  varArgsFrameIndex: 0180  varArgsSaveSize: 0181body:             |182  ; CHECK-LABEL: name: phi_i8183  ; CHECK: bb.0.entry:184  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)185  ; CHECK-NEXT:   liveins: $x10, $x11, $x12186  ; CHECK-NEXT: {{  $}}187  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10188  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11189  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12190  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1191  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]192  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2193  ; CHECK-NEXT:   G_BR %bb.1194  ; CHECK-NEXT: {{  $}}195  ; CHECK-NEXT: bb.1.cond.false:196  ; CHECK-NEXT:   successors: %bb.2(0x80000000)197  ; CHECK-NEXT: {{  $}}198  ; CHECK-NEXT: bb.2.cond.end:199  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0200  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)201  ; CHECK-NEXT:   PseudoRET implicit $x10202  bb.1.entry:203    liveins: $x10, $x11, $x12204 205    %3:_(s32) = COPY $x10206    %0:_(s1) = G_TRUNC %3(s32)207    %4:_(s32) = COPY $x11208    %1:_(s8) = G_TRUNC %4(s32)209    %5:_(s32) = COPY $x12210    %2:_(s8) = G_TRUNC %5(s32)211    G_BRCOND %0(s1), %bb.3212    G_BR %bb.2213 214  bb.2.cond.false:215 216  bb.3.cond.end:217    %6:_(s8) = G_PHI %2(s8), %bb.2, %1(s8), %bb.1218    %7:_(s32) = G_ANYEXT %6(s8)219    $x10 = COPY %7(s32)220    PseudoRET implicit $x10221 222...223---224name:            phi_i16225alignment:       4226tracksRegLiveness: true227registers:228  - { id: 0, class: _ }229  - { id: 1, class: _ }230  - { id: 2, class: _ }231  - { id: 3, class: _ }232  - { id: 4, class: _ }233  - { id: 5, class: _ }234  - { id: 6, class: _ }235  - { id: 7, class: _ }236frameInfo:237  maxAlignment:    1238machineFunctionInfo:239  varArgsFrameIndex: 0240  varArgsSaveSize: 0241body:             |242  ; CHECK-LABEL: name: phi_i16243  ; CHECK: bb.0.entry:244  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)245  ; CHECK-NEXT:   liveins: $x10, $x11, $x12246  ; CHECK-NEXT: {{  $}}247  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10248  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11249  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12250  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1251  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]252  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2253  ; CHECK-NEXT:   G_BR %bb.1254  ; CHECK-NEXT: {{  $}}255  ; CHECK-NEXT: bb.1.cond.false:256  ; CHECK-NEXT:   successors: %bb.2(0x80000000)257  ; CHECK-NEXT: {{  $}}258  ; CHECK-NEXT: bb.2.cond.end:259  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0260  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)261  ; CHECK-NEXT:   PseudoRET implicit $x10262  bb.1.entry:263    liveins: $x10, $x11, $x12264 265    %3:_(s32) = COPY $x10266    %0:_(s1) = G_TRUNC %3(s32)267    %4:_(s32) = COPY $x11268    %1:_(s16) = G_TRUNC %4(s32)269    %5:_(s32) = COPY $x12270    %2:_(s16) = G_TRUNC %5(s32)271    G_BRCOND %0(s1), %bb.3272    G_BR %bb.2273 274  bb.2.cond.false:275 276  bb.3.cond.end:277    %6:_(s16) = G_PHI %2(s16), %bb.2, %1(s16), %bb.1278    %7:_(s32) = G_ANYEXT %6(s16)279    $x10 = COPY %7(s32)280    PseudoRET implicit $x10281 282...283---284name:            phi_i32285alignment:       4286tracksRegLiveness: true287registers:288  - { id: 0, class: _ }289  - { id: 1, class: _ }290  - { id: 2, class: _ }291  - { id: 3, class: _ }292  - { id: 4, class: _ }293frameInfo:294  maxAlignment:    1295machineFunctionInfo:296  varArgsFrameIndex: 0297  varArgsSaveSize: 0298body:             |299  ; CHECK-LABEL: name: phi_i32300  ; CHECK: bb.0.entry:301  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)302  ; CHECK-NEXT:   liveins: $x10, $x11, $x12303  ; CHECK-NEXT: {{  $}}304  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10305  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11306  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12307  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1308  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]309  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2310  ; CHECK-NEXT:   G_BR %bb.1311  ; CHECK-NEXT: {{  $}}312  ; CHECK-NEXT: bb.1.cond.false:313  ; CHECK-NEXT:   successors: %bb.2(0x80000000)314  ; CHECK-NEXT: {{  $}}315  ; CHECK-NEXT: bb.2.cond.end:316  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY2]](s32), %bb.1, [[COPY1]](s32), %bb.0317  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)318  ; CHECK-NEXT:   PseudoRET implicit $x10319  bb.1.entry:320    liveins: $x10, $x11, $x12321 322    %3:_(s32) = COPY $x10323    %0:_(s1) = G_TRUNC %3(s32)324    %1:_(s32) = COPY $x11325    %2:_(s32) = COPY $x12326    G_BRCOND %0(s1), %bb.3327    G_BR %bb.2328 329  bb.2.cond.false:330 331  bb.3.cond.end:332    %4:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.1333    $x10 = COPY %4(s32)334    PseudoRET implicit $x10335 336...337---338name:            phi_ptr339alignment:       4340tracksRegLiveness: true341registers:342  - { id: 0, class: _ }343  - { id: 1, class: _ }344  - { id: 2, class: _ }345  - { id: 3, class: _ }346  - { id: 4, class: _ }347frameInfo:348  maxAlignment:    1349machineFunctionInfo:350  varArgsFrameIndex: 0351  varArgsSaveSize: 0352body:             |353  ; CHECK-LABEL: name: phi_ptr354  ; CHECK: bb.0.entry:355  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)356  ; CHECK-NEXT:   liveins: $x10, $x11, $x12357  ; CHECK-NEXT: {{  $}}358  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10359  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x11360  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(p0) = COPY $x12361  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1362  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]363  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2364  ; CHECK-NEXT:   G_BR %bb.1365  ; CHECK-NEXT: {{  $}}366  ; CHECK-NEXT: bb.1.cond.false:367  ; CHECK-NEXT:   successors: %bb.2(0x80000000)368  ; CHECK-NEXT: {{  $}}369  ; CHECK-NEXT: bb.2.cond.end:370  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(p0) = G_PHI [[COPY2]](p0), %bb.1, [[COPY1]](p0), %bb.0371  ; CHECK-NEXT:   $x10 = COPY [[PHI]](p0)372  ; CHECK-NEXT:   PseudoRET implicit $x10373  bb.1.entry:374    liveins: $x10, $x11, $x12375 376    %3:_(s32) = COPY $x10377    %0:_(s1) = G_TRUNC %3(s32)378    %1:_(p0) = COPY $x11379    %2:_(p0) = COPY $x12380    G_BRCOND %0(s1), %bb.3381    G_BR %bb.2382 383  bb.2.cond.false:384 385  bb.3.cond.end:386    %4:_(p0) = G_PHI %2(p0), %bb.2, %1(p0), %bb.1387    $x10 = COPY %4(p0)388    PseudoRET implicit $x10389 390...391---392name:            phi_i48393alignment:       4394tracksRegLiveness: true395registers:396  - { id: 0, class: _ }397  - { id: 1, class: _ }398  - { id: 2, class: _ }399  - { id: 3, class: _ }400  - { id: 4, class: _ }401  - { id: 5, class: _ }402  - { id: 6, class: _ }403  - { id: 7, class: _ }404  - { id: 8, class: _ }405  - { id: 9, class: _ }406  - { id: 10, class: _ }407  - { id: 11, class: _ }408  - { id: 12, class: _ }409  - { id: 13, class: _ }410frameInfo:411  maxAlignment:    1412machineFunctionInfo:413  varArgsFrameIndex: 0414  varArgsSaveSize: 0415body:             |416  ; CHECK-LABEL: name: phi_i48417  ; CHECK: bb.0.entry:418  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)419  ; CHECK-NEXT:   liveins: $x10, $x11, $x12, $x13, $x14420  ; CHECK-NEXT: {{  $}}421  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10422  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11423  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12424  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $x13425  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $x14426  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1427  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]428  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2429  ; CHECK-NEXT:   G_BR %bb.1430  ; CHECK-NEXT: {{  $}}431  ; CHECK-NEXT: bb.1.cond.false:432  ; CHECK-NEXT:   successors: %bb.2(0x80000000)433  ; CHECK-NEXT: {{  $}}434  ; CHECK-NEXT: bb.2.cond.end:435  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY3]](s32), %bb.1, [[COPY1]](s32), %bb.0436  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY2]](s32), %bb.0437  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)438  ; CHECK-NEXT:   $x11 = COPY [[PHI1]](s32)439  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x11440  bb.1.entry:441    liveins: $x10, $x11, $x12, $x13, $x14442 443    %3:_(s32) = COPY $x10444    %0:_(s1) = G_TRUNC %3(s32)445    %4:_(s32) = COPY $x11446    %5:_(s32) = COPY $x12447    %6:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)448    %1:_(s48) = G_TRUNC %6(s64)449    %7:_(s32) = COPY $x13450    %8:_(s32) = COPY $x14451    %9:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)452    %2:_(s48) = G_TRUNC %9(s64)453    G_BRCOND %0(s1), %bb.3454    G_BR %bb.2455 456  bb.2.cond.false:457 458  bb.3.cond.end:459    %10:_(s48) = G_PHI %2(s48), %bb.2, %1(s48), %bb.1460    %13:_(s64) = G_ANYEXT %10(s48)461    %11:_(s32), %12:_(s32) = G_UNMERGE_VALUES %13(s64)462    $x10 = COPY %11(s32)463    $x11 = COPY %12(s32)464    PseudoRET implicit $x10, implicit $x11465 466...467---468name:            phi_i64469alignment:       4470tracksRegLiveness: true471registers:472  - { id: 0, class: _ }473  - { id: 1, class: _ }474  - { id: 2, class: _ }475  - { id: 3, class: _ }476  - { id: 4, class: _ }477  - { id: 5, class: _ }478  - { id: 6, class: _ }479  - { id: 7, class: _ }480  - { id: 8, class: _ }481  - { id: 9, class: _ }482  - { id: 10, class: _ }483frameInfo:484  maxAlignment:    1485machineFunctionInfo:486  varArgsFrameIndex: 0487  varArgsSaveSize: 0488body:             |489  ; CHECK-LABEL: name: phi_i64490  ; CHECK: bb.0.entry:491  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)492  ; CHECK-NEXT:   liveins: $x10, $x11, $x12, $x13, $x14493  ; CHECK-NEXT: {{  $}}494  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10495  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11496  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x12497  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $x13498  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $x14499  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1500  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]501  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2502  ; CHECK-NEXT:   G_BR %bb.1503  ; CHECK-NEXT: {{  $}}504  ; CHECK-NEXT: bb.1.cond.false:505  ; CHECK-NEXT:   successors: %bb.2(0x80000000)506  ; CHECK-NEXT: {{  $}}507  ; CHECK-NEXT: bb.2.cond.end:508  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY3]](s32), %bb.1, [[COPY1]](s32), %bb.0509  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY2]](s32), %bb.0510  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)511  ; CHECK-NEXT:   $x11 = COPY [[PHI1]](s32)512  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x11513  bb.1.entry:514    liveins: $x10, $x11, $x12, $x13, $x14515 516    %3:_(s32) = COPY $x10517    %0:_(s1) = G_TRUNC %3(s32)518    %4:_(s32) = COPY $x11519    %5:_(s32) = COPY $x12520    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)521    %6:_(s32) = COPY $x13522    %7:_(s32) = COPY $x14523    %2:_(s64) = G_MERGE_VALUES %6(s32), %7(s32)524    G_BRCOND %0(s1), %bb.3525    G_BR %bb.2526 527  bb.2.cond.false:528 529  bb.3.cond.end:530    %8:_(s64) = G_PHI %2(s64), %bb.2, %1(s64), %bb.1531    %9:_(s32), %10:_(s32) = G_UNMERGE_VALUES %8(s64)532    $x10 = COPY %9(s32)533    $x11 = COPY %10(s32)534    PseudoRET implicit $x10, implicit $x11535 536...537---538name:            phi_i72539alignment:       4540tracksRegLiveness: true541registers:542  - { id: 0, class: _ }543  - { id: 1, class: _ }544  - { id: 2, class: _ }545  - { id: 3, class: _ }546  - { id: 4, class: _ }547  - { id: 5, class: _ }548  - { id: 6, class: _ }549  - { id: 7, class: _ }550  - { id: 8, class: _ }551  - { id: 9, class: _ }552  - { id: 10, class: _ }553  - { id: 11, class: _ }554  - { id: 12, class: _ }555  - { id: 13, class: _ }556  - { id: 14, class: _ }557  - { id: 15, class: _ }558  - { id: 16, class: _ }559frameInfo:560  maxAlignment:    1561machineFunctionInfo:562  varArgsFrameIndex: 0563  varArgsSaveSize: 0564body:             |565  ; CHECK-LABEL: name: phi_i72566  ; CHECK: bb.0.entry:567  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)568  ; CHECK-NEXT:   liveins: $x10, $x11, $x12569  ; CHECK-NEXT: {{  $}}570  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $x10571  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $x11572  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $x11573  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $x11574  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s32) = COPY $x12575  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $x12576  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s32) = COPY $x12577  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1578  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]579  ; CHECK-NEXT:   G_BRCOND [[AND]](s32), %bb.2580  ; CHECK-NEXT:   G_BR %bb.1581  ; CHECK-NEXT: {{  $}}582  ; CHECK-NEXT: bb.1.cond.false:583  ; CHECK-NEXT:   successors: %bb.2(0x80000000)584  ; CHECK-NEXT: {{  $}}585  ; CHECK-NEXT: bb.2.cond.end:586  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY4]](s32), %bb.1, [[COPY1]](s32), %bb.0587  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[COPY5]](s32), %bb.1, [[COPY2]](s32), %bb.0588  ; CHECK-NEXT:   [[PHI2:%[0-9]+]]:_(s32) = G_PHI [[COPY6]](s32), %bb.1, [[COPY3]](s32), %bb.0589  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s32)590  ; CHECK-NEXT:   $x10 = COPY [[PHI1]](s32)591  ; CHECK-NEXT:   $x10 = COPY [[PHI2]](s32)592  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x10, implicit $x10593  bb.1.entry:594    liveins: $x10, $x11, $x12595 596    %3:_(s32) = COPY $x10597    %0:_(s1) = G_TRUNC %3(s32)598    %4:_(s32) = COPY $x11599    %5:_(s32) = COPY $x11600    %6:_(s32) = COPY $x11601    %7:_(s96) = G_MERGE_VALUES %4(s32), %5(s32), %6(s32)602    %1:_(s72) = G_TRUNC %7(s96)603    %8:_(s32) = COPY $x12604    %9:_(s32) = COPY $x12605    %10:_(s32) = COPY $x12606    %11:_(s96) = G_MERGE_VALUES %8(s32), %9(s32), %10(s32)607    %2:_(s72) = G_TRUNC %11(s96)608    G_BRCOND %0(s1), %bb.3609    G_BR %bb.2610 611  bb.2.cond.false:612 613  bb.3.cond.end:614    %12:_(s72) = G_PHI %2(s72), %bb.2, %1(s72), %bb.1615    %16:_(s96) = G_ANYEXT %12(s72)616    %13:_(s32), %14:_(s32), %15:_(s32) = G_UNMERGE_VALUES %16(s96)617    $x10 = COPY %13(s32)618    $x10 = COPY %14(s32)619    $x10 = COPY %15(s32)620    PseudoRET implicit $x10, implicit $x10, implicit $x10621 622...623