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