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