brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.2 KiB · 9806826 Raw
704 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -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 i64 @phi_i64(i1 %cnd, i64 %a, i64 %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 i64 [ %b, %cond.false ], [ %a, %entry ]63    ret i64 %cond64  }65 66  define ptr @phi_ptr(i1 %cnd, ptr %a, ptr %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 ptr [ %b, %cond.false ], [ %a, %entry ]75    ret ptr %cond76  }77 78  define i72 @phi_i72(i1 %cnd, i72 %a, i72 %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 i72 [ %b, %cond.false ], [ %a, %entry ]87    ret i72 %cond88  }89 90  define i128 @phi_i128(i1 %cnd, i128 %a, i128 %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 i128 [ %b, %cond.false ], [ %a, %entry ]99    ret i128 %cond100  }101 102  define i192 @phi_i192(i1 %cnd, i192 %a, i192 %b) {103  entry:104    br i1 %cnd, label %cond.end, label %cond.false105 106  cond.false:                                       ; preds = %entry107    br label %cond.end108 109  cond.end:                                         ; preds = %entry, %cond.false110    %cond = phi i192 [ %b, %cond.false ], [ %a, %entry ]111    ret i192 %cond112  }113 114...115---116name:            phi_i1117alignment:       4118tracksRegLiveness: true119registers:120  - { id: 0, class: _ }121  - { id: 1, class: _ }122  - { id: 2, class: _ }123  - { id: 3, class: _ }124  - { id: 4, class: _ }125  - { id: 5, class: _ }126  - { id: 6, class: _ }127  - { id: 7, class: _ }128frameInfo:129  maxAlignment:    1130machineFunctionInfo:131  varArgsFrameIndex: 0132  varArgsSaveSize: 0133body:             |134  ; CHECK-LABEL: name: phi_i1135  ; CHECK: bb.0.entry:136  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)137  ; CHECK-NEXT:   liveins: $x10, $x11, $x12138  ; CHECK-NEXT: {{  $}}139  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10140  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11141  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12142  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)143  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1144  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]145  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2146  ; CHECK-NEXT:   G_BR %bb.1147  ; CHECK-NEXT: {{  $}}148  ; CHECK-NEXT: bb.1.cond.false:149  ; CHECK-NEXT:   successors: %bb.2(0x80000000)150  ; CHECK-NEXT: {{  $}}151  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)152  ; CHECK-NEXT: {{  $}}153  ; CHECK-NEXT: bb.2.cond.end:154  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0155  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[PHI]](s32)156  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)157  ; CHECK-NEXT:   PseudoRET implicit $x10158  bb.1.entry:159    liveins: $x10, $x11, $x12160 161    %3:_(s64) = COPY $x10162    %0:_(s1) = G_TRUNC %3(s64)163    %4:_(s64) = COPY $x11164    %1:_(s1) = G_TRUNC %4(s64)165    %5:_(s64) = COPY $x12166    %2:_(s1) = G_TRUNC %5(s64)167    G_BRCOND %0(s1), %bb.3168    G_BR %bb.2169 170  bb.2.cond.false:171 172  bb.3.cond.end:173    %6:_(s1) = G_PHI %2(s1), %bb.2, %1(s1), %bb.1174    %7:_(s64) = G_ANYEXT %6(s1)175    $x10 = COPY %7(s64)176    PseudoRET implicit $x10177 178...179---180name:            phi_i8181alignment:       4182tracksRegLiveness: true183registers:184  - { id: 0, class: _ }185  - { id: 1, class: _ }186  - { id: 2, class: _ }187  - { id: 3, class: _ }188  - { id: 4, class: _ }189  - { id: 5, class: _ }190  - { id: 6, class: _ }191  - { id: 7, class: _ }192frameInfo:193  maxAlignment:    1194machineFunctionInfo:195  varArgsFrameIndex: 0196  varArgsSaveSize: 0197body:             |198  ; CHECK-LABEL: name: phi_i8199  ; CHECK: bb.0.entry:200  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)201  ; CHECK-NEXT:   liveins: $x10, $x11, $x12202  ; CHECK-NEXT: {{  $}}203  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10204  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11205  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12206  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)207  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1208  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]209  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2210  ; CHECK-NEXT:   G_BR %bb.1211  ; CHECK-NEXT: {{  $}}212  ; CHECK-NEXT: bb.1.cond.false:213  ; CHECK-NEXT:   successors: %bb.2(0x80000000)214  ; CHECK-NEXT: {{  $}}215  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)216  ; CHECK-NEXT: {{  $}}217  ; CHECK-NEXT: bb.2.cond.end:218  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0219  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[PHI]](s32)220  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)221  ; CHECK-NEXT:   PseudoRET implicit $x10222  bb.1.entry:223    liveins: $x10, $x11, $x12224 225    %3:_(s64) = COPY $x10226    %0:_(s1) = G_TRUNC %3(s64)227    %4:_(s64) = COPY $x11228    %1:_(s8) = G_TRUNC %4(s64)229    %5:_(s64) = COPY $x12230    %2:_(s8) = G_TRUNC %5(s64)231    G_BRCOND %0(s1), %bb.3232    G_BR %bb.2233 234  bb.2.cond.false:235 236  bb.3.cond.end:237    %6:_(s8) = G_PHI %2(s8), %bb.2, %1(s8), %bb.1238    %7:_(s64) = G_ANYEXT %6(s8)239    $x10 = COPY %7(s64)240    PseudoRET implicit $x10241 242...243---244name:            phi_i16245alignment:       4246tracksRegLiveness: true247registers:248  - { id: 0, class: _ }249  - { id: 1, class: _ }250  - { id: 2, class: _ }251  - { id: 3, class: _ }252  - { id: 4, class: _ }253  - { id: 5, class: _ }254  - { id: 6, class: _ }255  - { id: 7, class: _ }256frameInfo:257  maxAlignment:    1258machineFunctionInfo:259  varArgsFrameIndex: 0260  varArgsSaveSize: 0261body:             |262  ; CHECK-LABEL: name: phi_i16263  ; CHECK: bb.0.entry:264  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)265  ; CHECK-NEXT:   liveins: $x10, $x11, $x12266  ; CHECK-NEXT: {{  $}}267  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10268  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11269  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12270  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)271  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1272  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]273  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2274  ; CHECK-NEXT:   G_BR %bb.1275  ; CHECK-NEXT: {{  $}}276  ; CHECK-NEXT: bb.1.cond.false:277  ; CHECK-NEXT:   successors: %bb.2(0x80000000)278  ; CHECK-NEXT: {{  $}}279  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)280  ; CHECK-NEXT: {{  $}}281  ; CHECK-NEXT: bb.2.cond.end:282  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0283  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[PHI]](s32)284  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)285  ; CHECK-NEXT:   PseudoRET implicit $x10286  bb.1.entry:287    liveins: $x10, $x11, $x12288 289    %3:_(s64) = COPY $x10290    %0:_(s1) = G_TRUNC %3(s64)291    %4:_(s64) = COPY $x11292    %1:_(s16) = G_TRUNC %4(s64)293    %5:_(s64) = COPY $x12294    %2:_(s16) = G_TRUNC %5(s64)295    G_BRCOND %0(s1), %bb.3296    G_BR %bb.2297 298  bb.2.cond.false:299 300  bb.3.cond.end:301    %6:_(s16) = G_PHI %2(s16), %bb.2, %1(s16), %bb.1302    %7:_(s64) = G_ANYEXT %6(s16)303    $x10 = COPY %7(s64)304    PseudoRET implicit $x10305 306...307---308name:            phi_i32309alignment:       4310tracksRegLiveness: true311registers:312  - { id: 0, class: _ }313  - { id: 1, class: _ }314  - { id: 2, class: _ }315  - { id: 3, class: _ }316  - { id: 4, class: _ }317  - { id: 5, class: _ }318  - { id: 6, class: _ }319  - { id: 7, class: _ }320frameInfo:321  maxAlignment:    1322machineFunctionInfo:323  varArgsFrameIndex: 0324  varArgsSaveSize: 0325body:             |326  ; CHECK-LABEL: name: phi_i32327  ; CHECK: bb.0.entry:328  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)329  ; CHECK-NEXT:   liveins: $x10, $x11, $x12330  ; CHECK-NEXT: {{  $}}331  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10332  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11333  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)334  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12335  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)336  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1337  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]338  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2339  ; CHECK-NEXT:   G_BR %bb.1340  ; CHECK-NEXT: {{  $}}341  ; CHECK-NEXT: bb.1.cond.false:342  ; CHECK-NEXT:   successors: %bb.2(0x80000000)343  ; CHECK-NEXT: {{  $}}344  ; CHECK-NEXT: bb.2.cond.end:345  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0346  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[PHI]](s32)347  ; CHECK-NEXT:   $x10 = COPY [[ANYEXT]](s64)348  ; CHECK-NEXT:   PseudoRET implicit $x10349  bb.1.entry:350    liveins: $x10, $x11, $x12351 352    %3:_(s64) = COPY $x10353    %0:_(s1) = G_TRUNC %3(s64)354    %4:_(s64) = COPY $x11355    %1:_(s32) = G_TRUNC %4(s64)356    %5:_(s64) = COPY $x12357    %2:_(s32) = G_TRUNC %5(s64)358    G_BRCOND %0(s1), %bb.3359    G_BR %bb.2360 361  bb.2.cond.false:362 363  bb.3.cond.end:364    %6:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.1365    %7:_(s64) = G_ANYEXT %6(s32)366    $x10 = COPY %7(s64)367    PseudoRET implicit $x10368 369...370---371name:            phi_i64372alignment:       4373tracksRegLiveness: true374registers:375  - { id: 0, class: _ }376  - { id: 1, class: _ }377  - { id: 2, class: _ }378  - { id: 3, class: _ }379  - { id: 4, class: _ }380frameInfo:381  maxAlignment:    1382machineFunctionInfo:383  varArgsFrameIndex: 0384  varArgsSaveSize: 0385body:             |386  ; CHECK-LABEL: name: phi_i64387  ; CHECK: bb.0.entry:388  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)389  ; CHECK-NEXT:   liveins: $x10, $x11, $x12390  ; CHECK-NEXT: {{  $}}391  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10392  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11393  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12394  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1395  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]396  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2397  ; CHECK-NEXT:   G_BR %bb.1398  ; CHECK-NEXT: {{  $}}399  ; CHECK-NEXT: bb.1.cond.false:400  ; CHECK-NEXT:   successors: %bb.2(0x80000000)401  ; CHECK-NEXT: {{  $}}402  ; CHECK-NEXT: bb.2.cond.end:403  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY2]](s64), %bb.1, [[COPY1]](s64), %bb.0404  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s64)405  ; CHECK-NEXT:   PseudoRET implicit $x10406  bb.1.entry:407    liveins: $x10, $x11, $x12408 409    %3:_(s64) = COPY $x10410    %0:_(s1) = G_TRUNC %3(s64)411    %1:_(s64) = COPY $x11412    %2:_(s64) = COPY $x12413    G_BRCOND %0(s1), %bb.3414    G_BR %bb.2415 416  bb.2.cond.false:417 418  bb.3.cond.end:419    %4:_(s64) = G_PHI %2(s64), %bb.2, %1(s64), %bb.1420    $x10 = COPY %4(s64)421    PseudoRET implicit $x10422 423...424---425name:            phi_ptr426alignment:       4427tracksRegLiveness: true428registers:429  - { id: 0, class: _ }430  - { id: 1, class: _ }431  - { id: 2, class: _ }432  - { id: 3, class: _ }433  - { id: 4, class: _ }434frameInfo:435  maxAlignment:    1436machineFunctionInfo:437  varArgsFrameIndex: 0438  varArgsSaveSize: 0439body:             |440  ; CHECK-LABEL: name: phi_ptr441  ; CHECK: bb.0.entry:442  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)443  ; CHECK-NEXT:   liveins: $x10, $x11, $x12444  ; CHECK-NEXT: {{  $}}445  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10446  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(p0) = COPY $x11447  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(p0) = COPY $x12448  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1449  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]450  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2451  ; CHECK-NEXT:   G_BR %bb.1452  ; CHECK-NEXT: {{  $}}453  ; CHECK-NEXT: bb.1.cond.false:454  ; CHECK-NEXT:   successors: %bb.2(0x80000000)455  ; CHECK-NEXT: {{  $}}456  ; CHECK-NEXT: bb.2.cond.end:457  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(p0) = G_PHI [[COPY2]](p0), %bb.1, [[COPY1]](p0), %bb.0458  ; CHECK-NEXT:   $x10 = COPY [[PHI]](p0)459  ; CHECK-NEXT:   PseudoRET implicit $x10460  bb.1.entry:461    liveins: $x10, $x11, $x12462 463    %3:_(s64) = COPY $x10464    %0:_(s1) = G_TRUNC %3(s64)465    %1:_(p0) = COPY $x11466    %2:_(p0) = COPY $x12467    G_BRCOND %0(s1), %bb.3468    G_BR %bb.2469 470  bb.2.cond.false:471 472  bb.3.cond.end:473    %4:_(p0) = G_PHI %2(p0), %bb.2, %1(p0), %bb.1474    $x10 = COPY %4(p0)475    PseudoRET implicit $x10476 477...478---479name:            phi_i72480alignment:       4481tracksRegLiveness: true482registers:483  - { id: 0, class: _ }484  - { id: 1, class: _ }485  - { id: 2, class: _ }486  - { id: 3, class: _ }487  - { id: 4, class: _ }488  - { id: 5, class: _ }489  - { id: 6, class: _ }490  - { id: 7, class: _ }491  - { id: 8, class: _ }492  - { id: 9, class: _ }493  - { id: 10, class: _ }494  - { id: 11, class: _ }495  - { id: 12, class: _ }496  - { id: 13, class: _ }497frameInfo:498  maxAlignment:    1499machineFunctionInfo:500  varArgsFrameIndex: 0501  varArgsSaveSize: 0502body:             |503  ; CHECK-LABEL: name: phi_i72504  ; CHECK: bb.0.entry:505  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)506  ; CHECK-NEXT:   liveins: $x10, $x11, $x12, $x13, $x14507  ; CHECK-NEXT: {{  $}}508  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10509  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11510  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12511  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x13512  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x14513  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1514  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]515  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2516  ; CHECK-NEXT:   G_BR %bb.1517  ; CHECK-NEXT: {{  $}}518  ; CHECK-NEXT: bb.1.cond.false:519  ; CHECK-NEXT:   successors: %bb.2(0x80000000)520  ; CHECK-NEXT: {{  $}}521  ; CHECK-NEXT: bb.2.cond.end:522  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY3]](s64), %bb.1, [[COPY1]](s64), %bb.0523  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s64) = G_PHI [[COPY4]](s64), %bb.1, [[COPY2]](s64), %bb.0524  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s64)525  ; CHECK-NEXT:   $x11 = COPY [[PHI1]](s64)526  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x11527  bb.1.entry:528    liveins: $x10, $x11, $x12, $x13, $x14529 530    %3:_(s64) = COPY $x10531    %0:_(s1) = G_TRUNC %3(s64)532    %4:_(s64) = COPY $x11533    %5:_(s64) = COPY $x12534    %6:_(s128) = G_MERGE_VALUES %4(s64), %5(s64)535    %1:_(s72) = G_TRUNC %6(s128)536    %7:_(s64) = COPY $x13537    %8:_(s64) = COPY $x14538    %9:_(s128) = G_MERGE_VALUES %7(s64), %8(s64)539    %2:_(s72) = G_TRUNC %9(s128)540    G_BRCOND %0(s1), %bb.3541    G_BR %bb.2542 543  bb.2.cond.false:544 545  bb.3.cond.end:546    %10:_(s72) = G_PHI %2(s72), %bb.2, %1(s72), %bb.1547    %13:_(s128) = G_ANYEXT %10(s72)548    %11:_(s64), %12:_(s64) = G_UNMERGE_VALUES %13(s128)549    $x10 = COPY %11(s64)550    $x11 = COPY %12(s64)551    PseudoRET implicit $x10, implicit $x11552 553...554---555name:            phi_i128556alignment:       4557tracksRegLiveness: true558registers:559  - { id: 0, class: _ }560  - { id: 1, class: _ }561  - { id: 2, class: _ }562  - { id: 3, class: _ }563  - { id: 4, class: _ }564  - { id: 5, class: _ }565  - { id: 6, class: _ }566  - { id: 7, class: _ }567  - { id: 8, class: _ }568  - { id: 9, class: _ }569  - { id: 10, class: _ }570frameInfo:571  maxAlignment:    1572machineFunctionInfo:573  varArgsFrameIndex: 0574  varArgsSaveSize: 0575body:             |576  ; CHECK-LABEL: name: phi_i128577  ; CHECK: bb.0.entry:578  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)579  ; CHECK-NEXT:   liveins: $x10, $x11, $x12, $x13, $x14580  ; CHECK-NEXT: {{  $}}581  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10582  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11583  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x12584  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x13585  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x14586  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1587  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]588  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2589  ; CHECK-NEXT:   G_BR %bb.1590  ; CHECK-NEXT: {{  $}}591  ; CHECK-NEXT: bb.1.cond.false:592  ; CHECK-NEXT:   successors: %bb.2(0x80000000)593  ; CHECK-NEXT: {{  $}}594  ; CHECK-NEXT: bb.2.cond.end:595  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY3]](s64), %bb.1, [[COPY1]](s64), %bb.0596  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s64) = G_PHI [[COPY4]](s64), %bb.1, [[COPY2]](s64), %bb.0597  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s64)598  ; CHECK-NEXT:   $x11 = COPY [[PHI1]](s64)599  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x11600  bb.1.entry:601    liveins: $x10, $x11, $x12, $x13, $x14602 603    %3:_(s64) = COPY $x10604    %0:_(s1) = G_TRUNC %3(s64)605    %4:_(s64) = COPY $x11606    %5:_(s64) = COPY $x12607    %1:_(s128) = G_MERGE_VALUES %4(s64), %5(s64)608    %6:_(s64) = COPY $x13609    %7:_(s64) = COPY $x14610    %2:_(s128) = G_MERGE_VALUES %6(s64), %7(s64)611    G_BRCOND %0(s1), %bb.3612    G_BR %bb.2613 614  bb.2.cond.false:615 616  bb.3.cond.end:617    %8:_(s128) = G_PHI %2(s128), %bb.2, %1(s128), %bb.1618    %9:_(s64), %10:_(s64) = G_UNMERGE_VALUES %8(s128)619    $x10 = COPY %9(s64)620    $x11 = COPY %10(s64)621    PseudoRET implicit $x10, implicit $x11622 623...624---625name:            phi_i192626alignment:       4627tracksRegLiveness: true628registers:629  - { id: 0, class: _ }630  - { id: 1, class: _ }631  - { id: 2, class: _ }632  - { id: 3, class: _ }633  - { id: 4, class: _ }634  - { id: 5, class: _ }635  - { id: 6, class: _ }636  - { id: 7, class: _ }637  - { id: 8, class: _ }638  - { id: 9, class: _ }639  - { id: 10, class: _ }640  - { id: 11, class: _ }641  - { id: 12, class: _ }642  - { id: 13, class: _ }643frameInfo:644  maxAlignment:    1645machineFunctionInfo:646  varArgsFrameIndex: 0647  varArgsSaveSize: 0648body:             |649  ; CHECK-LABEL: name: phi_i192650  ; CHECK: bb.0.entry:651  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)652  ; CHECK-NEXT:   liveins: $x10, $x11, $x12653  ; CHECK-NEXT: {{  $}}654  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x10655  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x11656  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x11657  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x11658  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x12659  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $x12660  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s64) = COPY $x12661  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1662  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]663  ; CHECK-NEXT:   G_BRCOND [[AND]](s64), %bb.2664  ; CHECK-NEXT:   G_BR %bb.1665  ; CHECK-NEXT: {{  $}}666  ; CHECK-NEXT: bb.1.cond.false:667  ; CHECK-NEXT:   successors: %bb.2(0x80000000)668  ; CHECK-NEXT: {{  $}}669  ; CHECK-NEXT: bb.2.cond.end:670  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY4]](s64), %bb.1, [[COPY1]](s64), %bb.0671  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s64) = G_PHI [[COPY5]](s64), %bb.1, [[COPY2]](s64), %bb.0672  ; CHECK-NEXT:   [[PHI2:%[0-9]+]]:_(s64) = G_PHI [[COPY6]](s64), %bb.1, [[COPY3]](s64), %bb.0673  ; CHECK-NEXT:   $x10 = COPY [[PHI]](s64)674  ; CHECK-NEXT:   $x10 = COPY [[PHI1]](s64)675  ; CHECK-NEXT:   $x10 = COPY [[PHI2]](s64)676  ; CHECK-NEXT:   PseudoRET implicit $x10, implicit $x10, implicit $x10677  bb.1.entry:678    liveins: $x10, $x11, $x12679 680    %3:_(s64) = COPY $x10681    %0:_(s1) = G_TRUNC %3(s64)682    %4:_(s64) = COPY $x11683    %5:_(s64) = COPY $x11684    %6:_(s64) = COPY $x11685    %1:_(s192) = G_MERGE_VALUES %4(s64), %5(s64), %6(s64)686    %7:_(s64) = COPY $x12687    %8:_(s64) = COPY $x12688    %9:_(s64) = COPY $x12689    %2:_(s192) = G_MERGE_VALUES %7(s64), %8(s64), %9(s64)690    G_BRCOND %0(s1), %bb.3691    G_BR %bb.2692 693  bb.2.cond.false:694 695  bb.3.cond.end:696    %10:_(s192) = G_PHI %2(s192), %bb.2, %1(s192), %bb.1697    %11:_(s64), %12:_(s64), %13:_(s64) = G_UNMERGE_VALUES %10(s192)698    $x10 = COPY %11(s64)699    $x10 = COPY %12(s64)700    $x10 = COPY %13(s64)701    PseudoRET implicit $x10, implicit $x10, implicit $x10702 703...704