617 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s3 4--- |5 6 define zeroext i1 @test_i1(i32 %a, i1 zeroext %f, i1 zeroext %t) {7 entry:8 %cmp = icmp sgt i32 %a, 09 br i1 %cmp, label %cond.true, label %cond.false10 11 cond.true: ; preds = %entry12 br label %cond.end13 14 cond.false: ; preds = %entry15 br label %cond.end16 17 cond.end: ; preds = %cond.false, %cond.true18 %cond = phi i1 [ %f, %cond.true ], [ %t, %cond.false ]19 ret i1 %cond20 }21 22 define i8 @test_i8(i32 %a, i8 %f, i8 %t) {23 entry:24 %cmp = icmp sgt i32 %a, 025 br i1 %cmp, label %cond.true, label %cond.false26 27 cond.true: ; preds = %entry28 br label %cond.end29 30 cond.false: ; preds = %entry31 br label %cond.end32 33 cond.end: ; preds = %cond.false, %cond.true34 %cond = phi i8 [ %f, %cond.true ], [ %t, %cond.false ]35 ret i8 %cond36 }37 38 define i16 @test_i16(i32 %a, i16 %f, i16 %t) {39 entry:40 %cmp = icmp sgt i32 %a, 041 br i1 %cmp, label %cond.true, label %cond.false42 43 cond.true: ; preds = %entry44 br label %cond.end45 46 cond.false: ; preds = %entry47 br label %cond.end48 49 cond.end: ; preds = %cond.false, %cond.true50 %cond = phi i16 [ %f, %cond.true ], [ %t, %cond.false ]51 ret i16 %cond52 }53 54 define i32 @test_i32(i32 %a, i32 %f, i32 %t) {55 entry:56 %cmp = icmp sgt i32 %a, 057 br i1 %cmp, label %cond.true, label %cond.false58 59 cond.true: ; preds = %entry60 br label %cond.end61 62 cond.false: ; preds = %entry63 br label %cond.end64 65 cond.end: ; preds = %cond.false, %cond.true66 %cond = phi i32 [ %f, %cond.true ], [ %t, %cond.false ]67 ret i32 %cond68 }69 70 define i64 @test_i64(i32 %a, i64 %f, i64 %t) {71 entry:72 %cmp = icmp sgt i32 %a, 073 br i1 %cmp, label %cond.true, label %cond.false74 75 cond.true: ; preds = %entry76 br label %cond.end77 78 cond.false: ; preds = %entry79 br label %cond.end80 81 cond.end: ; preds = %cond.false, %cond.true82 %cond = phi i64 [ %f, %cond.true ], [ %t, %cond.false ]83 ret i64 %cond84 }85 86 define float @test_float(i32 %a, float %f, float %t) {87 entry:88 %cmp = icmp sgt i32 %a, 089 br i1 %cmp, label %cond.true, label %cond.false90 91 cond.true: ; preds = %entry92 br label %cond.end93 94 cond.false: ; preds = %entry95 br label %cond.end96 97 cond.end: ; preds = %cond.false, %cond.true98 %cond = phi float [ %f, %cond.true ], [ %t, %cond.false ]99 ret float %cond100 }101 102 define double @test_double(i32 %a, double %f, double %t) {103 entry:104 %cmp = icmp sgt i32 %a, 0105 br i1 %cmp, label %cond.true, label %cond.false106 107 cond.true: ; preds = %entry108 br label %cond.end109 110 cond.false: ; preds = %entry111 br label %cond.end112 113 cond.end: ; preds = %cond.false, %cond.true114 %cond = phi double [ %f, %cond.true ], [ %t, %cond.false ]115 ret double %cond116 }117 118...119---120name: test_i1121alignment: 16122legalized: false123regBankSelected: false124tracksRegLiveness: true125registers:126 - { id: 0, class: _, preferred-register: '' }127 - { id: 1, class: _, preferred-register: '' }128 - { id: 2, class: _, preferred-register: '' }129 - { id: 3, class: _, preferred-register: '' }130 - { id: 4, class: _, preferred-register: '' }131 - { id: 5, class: _, preferred-register: '' }132 - { id: 6, class: _, preferred-register: '' }133 - { id: 7, class: _, preferred-register: '' }134 - { id: 8, class: _, preferred-register: '' }135liveins:136fixedStack:137stack:138constants:139 140 141 142 143body: |144 ; CHECK-LABEL: name: test_i1145 ; CHECK: bb.0.entry:146 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)147 ; CHECK-NEXT: liveins: $edi, $edx, $esi148 ; CHECK-NEXT: {{ $}}149 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi150 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi151 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY1]](s32)152 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $edx153 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[COPY2]](s32)154 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0155 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]156 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)157 ; CHECK-NEXT: G_BRCOND [[TRUNC1]](s1), %bb.2158 ; CHECK-NEXT: {{ $}}159 ; CHECK-NEXT: bb.1.cond.false:160 ; CHECK-NEXT: successors: %bb.2(0x80000000)161 ; CHECK-NEXT: {{ $}}162 ; CHECK-NEXT: bb.2.cond.end:163 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s1) = G_PHI [[TRUNC2]](s1), %bb.1, [[TRUNC]](s1), %bb.0164 ; CHECK-NEXT: [[EXT:%[0-9]+]]:_(s8) = G_ANYEXT [[PHI]](s1)165 ; CHECK-NEXT: $al = COPY [[EXT]](s8)166 ; CHECK-NEXT: RET 0, implicit $al167 bb.1.entry:168 successors: %bb.3(0x40000000), %bb.2(0x40000000)169 liveins: $edi, $edx, $esi170 171 %0:_(s32) = COPY $edi172 %3:_(s32) = COPY $esi173 %1:_(s1) = G_TRUNC %3(s32)174 %4:_(s32) = COPY $edx175 %2:_(s1) = G_TRUNC %4(s32)176 %5:_(s32) = G_CONSTANT i32 0177 %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5178 G_BRCOND %6(s1), %bb.3179 180 bb.2.cond.false:181 successors: %bb.3(0x80000000)182 183 184 bb.3.cond.end:185 %7:_(s1) = G_PHI %2(s1), %bb.2, %1(s1), %bb.1186 %8:_(s8) = G_ANYEXT %7(s1)187 $al = COPY %8(s8)188 RET 0, implicit $al189 190...191---192name: test_i8193alignment: 16194legalized: false195regBankSelected: false196tracksRegLiveness: true197registers:198 - { id: 0, class: _, preferred-register: '' }199 - { id: 1, class: _, preferred-register: '' }200 - { id: 2, class: _, preferred-register: '' }201 - { id: 3, class: _, preferred-register: '' }202 - { id: 4, class: _, preferred-register: '' }203 - { id: 5, class: _, preferred-register: '' }204 - { id: 6, class: _, preferred-register: '' }205 - { id: 7, class: _, preferred-register: '' }206liveins:207fixedStack:208stack:209constants:210 211 212 213body: |214 ; CHECK-LABEL: name: test_i8215 ; CHECK: bb.0.entry:216 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)217 ; CHECK-NEXT: liveins: $edi, $edx, $esi218 ; CHECK-NEXT: {{ $}}219 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi220 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi221 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)222 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $edx223 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32)224 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0225 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]226 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)227 ; CHECK-NEXT: G_BRCOND [[TRUNC2]](s1), %bb.2228 ; CHECK-NEXT: {{ $}}229 ; CHECK-NEXT: bb.1.cond.false:230 ; CHECK-NEXT: successors: %bb.2(0x80000000)231 ; CHECK-NEXT: {{ $}}232 ; CHECK-NEXT: bb.2.cond.end:233 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s8) = G_PHI [[TRUNC1]](s8), %bb.1, [[TRUNC]](s8), %bb.0234 ; CHECK-NEXT: $al = COPY [[PHI]](s8)235 ; CHECK-NEXT: RET 0, implicit $al236 bb.1.entry:237 successors: %bb.3(0x40000000), %bb.2(0x40000000)238 liveins: $edi, $edx, $esi239 240 %0:_(s32) = COPY $edi241 %3:_(s32) = COPY $esi242 %1:_(s8) = G_TRUNC %3(s32)243 %4:_(s32) = COPY $edx244 %2:_(s8) = G_TRUNC %4(s32)245 %5:_(s32) = G_CONSTANT i32 0246 %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5247 G_BRCOND %6(s1), %bb.3248 249 bb.2.cond.false:250 successors: %bb.3(0x80000000)251 252 253 bb.3.cond.end:254 %7:_(s8) = G_PHI %2(s8), %bb.2, %1(s8), %bb.1255 $al = COPY %7(s8)256 RET 0, implicit $al257 258...259---260name: test_i16261alignment: 16262legalized: false263regBankSelected: false264tracksRegLiveness: true265registers:266 - { id: 0, class: _, preferred-register: '' }267 - { id: 1, class: _, preferred-register: '' }268 - { id: 2, class: _, preferred-register: '' }269 - { id: 3, class: _, preferred-register: '' }270 - { id: 4, class: _, preferred-register: '' }271 - { id: 5, class: _, preferred-register: '' }272 - { id: 6, class: _, preferred-register: '' }273 - { id: 7, class: _, preferred-register: '' }274liveins:275fixedStack:276stack:277constants:278 279 280 281body: |282 ; CHECK-LABEL: name: test_i16283 ; CHECK: bb.0.entry:284 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)285 ; CHECK-NEXT: liveins: $edi, $edx, $esi286 ; CHECK-NEXT: {{ $}}287 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi288 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi289 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)290 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $edx291 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)292 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0293 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]294 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)295 ; CHECK-NEXT: G_BRCOND [[TRUNC2]](s1), %bb.2296 ; CHECK-NEXT: {{ $}}297 ; CHECK-NEXT: bb.1.cond.false:298 ; CHECK-NEXT: successors: %bb.2(0x80000000)299 ; CHECK-NEXT: {{ $}}300 ; CHECK-NEXT: bb.2.cond.end:301 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s16) = G_PHI [[TRUNC1]](s16), %bb.1, [[TRUNC]](s16), %bb.0302 ; CHECK-NEXT: $ax = COPY [[PHI]](s16)303 ; CHECK-NEXT: RET 0, implicit $ax304 bb.1.entry:305 successors: %bb.3(0x40000000), %bb.2(0x40000000)306 liveins: $edi, $edx, $esi307 308 %0:_(s32) = COPY $edi309 %3:_(s32) = COPY $esi310 %1:_(s16) = G_TRUNC %3(s32)311 %4:_(s32) = COPY $edx312 %2:_(s16) = G_TRUNC %4(s32)313 %5:_(s32) = G_CONSTANT i32 0314 %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5315 G_BRCOND %6(s1), %bb.3316 317 bb.2.cond.false:318 successors: %bb.3(0x80000000)319 320 321 bb.3.cond.end:322 %7:_(s16) = G_PHI %2(s16), %bb.2, %1(s16), %bb.1323 $ax = COPY %7(s16)324 RET 0, implicit $ax325 326...327---328name: test_i32329alignment: 16330legalized: false331regBankSelected: false332tracksRegLiveness: true333registers:334 - { id: 0, class: _, preferred-register: '' }335 - { id: 1, class: _, preferred-register: '' }336 - { id: 2, class: _, preferred-register: '' }337 - { id: 3, class: _, preferred-register: '' }338 - { id: 4, class: _, preferred-register: '' }339 - { id: 5, class: _, preferred-register: '' }340liveins:341fixedStack:342stack:343constants:344 345 346 347body: |348 ; CHECK-LABEL: name: test_i32349 ; CHECK: bb.0.entry:350 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)351 ; CHECK-NEXT: liveins: $edi, $edx, $esi352 ; CHECK-NEXT: {{ $}}353 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi354 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi355 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $edx356 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0357 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]358 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)359 ; CHECK-NEXT: G_BRCOND [[TRUNC]](s1), %bb.1360 ; CHECK-NEXT: G_BR %bb.2361 ; CHECK-NEXT: {{ $}}362 ; CHECK-NEXT: bb.1.cond.true:363 ; CHECK-NEXT: successors: %bb.3(0x80000000)364 ; CHECK-NEXT: {{ $}}365 ; CHECK-NEXT: G_BR %bb.3366 ; CHECK-NEXT: {{ $}}367 ; CHECK-NEXT: bb.2.cond.false:368 ; CHECK-NEXT: successors: %bb.3(0x80000000)369 ; CHECK-NEXT: {{ $}}370 ; CHECK-NEXT: bb.3.cond.end:371 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY1]](s32), %bb.1, [[COPY2]](s32), %bb.2372 ; CHECK-NEXT: $eax = COPY [[PHI]](s32)373 ; CHECK-NEXT: RET 0, implicit $eax374 bb.1.entry:375 successors: %bb.2(0x40000000), %bb.3(0x40000000)376 liveins: $edi, $edx, $esi377 378 %0(s32) = COPY $edi379 %1(s32) = COPY $esi380 %2(s32) = COPY $edx381 %3(s32) = G_CONSTANT i32 0382 %4(s1) = G_ICMP intpred(sgt), %0(s32), %3383 G_BRCOND %4(s1), %bb.2384 G_BR %bb.3385 386 bb.2.cond.true:387 successors: %bb.4(0x80000000)388 389 G_BR %bb.4390 391 bb.3.cond.false:392 successors: %bb.4(0x80000000)393 394 395 bb.4.cond.end:396 %5(s32) = G_PHI %1(s32), %bb.2, %2(s32), %bb.3397 $eax = COPY %5(s32)398 RET 0, implicit $eax399 400...401---402name: test_i64403alignment: 16404legalized: false405regBankSelected: false406tracksRegLiveness: true407registers:408 - { id: 0, class: _, preferred-register: '' }409 - { id: 1, class: _, preferred-register: '' }410 - { id: 2, class: _, preferred-register: '' }411 - { id: 3, class: _, preferred-register: '' }412 - { id: 4, class: _, preferred-register: '' }413 - { id: 5, class: _, preferred-register: '' }414liveins:415fixedStack:416stack:417constants:418 419 420 421body: |422 ; CHECK-LABEL: name: test_i64423 ; CHECK: bb.0.entry:424 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)425 ; CHECK-NEXT: liveins: $edi, $rdx, $rsi426 ; CHECK-NEXT: {{ $}}427 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi428 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $rsi429 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $rdx430 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0431 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]432 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)433 ; CHECK-NEXT: G_BRCOND [[TRUNC]](s1), %bb.1434 ; CHECK-NEXT: G_BR %bb.2435 ; CHECK-NEXT: {{ $}}436 ; CHECK-NEXT: bb.1.cond.true:437 ; CHECK-NEXT: successors: %bb.3(0x80000000)438 ; CHECK-NEXT: {{ $}}439 ; CHECK-NEXT: G_BR %bb.3440 ; CHECK-NEXT: {{ $}}441 ; CHECK-NEXT: bb.2.cond.false:442 ; CHECK-NEXT: successors: %bb.3(0x80000000)443 ; CHECK-NEXT: {{ $}}444 ; CHECK-NEXT: bb.3.cond.end:445 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY1]](s64), %bb.1, [[COPY2]](s64), %bb.2446 ; CHECK-NEXT: $rax = COPY [[PHI]](s64)447 ; CHECK-NEXT: RET 0, implicit $rax448 bb.1.entry:449 successors: %bb.2(0x40000000), %bb.3(0x40000000)450 liveins: $edi, $rdx, $rsi451 452 %0(s32) = COPY $edi453 %1(s64) = COPY $rsi454 %2(s64) = COPY $rdx455 %3(s32) = G_CONSTANT i32 0456 %4(s1) = G_ICMP intpred(sgt), %0(s32), %3457 G_BRCOND %4(s1), %bb.2458 G_BR %bb.3459 460 bb.2.cond.true:461 successors: %bb.4(0x80000000)462 463 G_BR %bb.4464 465 bb.3.cond.false:466 successors: %bb.4(0x80000000)467 468 469 bb.4.cond.end:470 %5(s64) = G_PHI %1(s64), %bb.2, %2(s64), %bb.3471 $rax = COPY %5(s64)472 RET 0, implicit $rax473 474...475---476name: test_float477alignment: 16478legalized: false479regBankSelected: false480tracksRegLiveness: true481registers:482 - { id: 0, class: _, preferred-register: '' }483 - { id: 1, class: _, preferred-register: '' }484 - { id: 2, class: _, preferred-register: '' }485 - { id: 3, class: _, preferred-register: '' }486 - { id: 4, class: _, preferred-register: '' }487 - { id: 5, class: _, preferred-register: '' }488 - { id: 6, class: _, preferred-register: '' }489 - { id: 7, class: _, preferred-register: '' }490 - { id: 8, class: _, preferred-register: '' }491liveins:492fixedStack:493stack:494constants:495 496 497 498body: |499 ; CHECK-LABEL: name: test_float500 ; CHECK: bb.0.entry:501 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)502 ; CHECK-NEXT: liveins: $edi, $xmm0, $xmm1503 ; CHECK-NEXT: {{ $}}504 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi505 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm0506 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)507 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s128) = COPY $xmm1508 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s128)509 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0510 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]511 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)512 ; CHECK-NEXT: G_BRCOND [[TRUNC2]](s1), %bb.2513 ; CHECK-NEXT: {{ $}}514 ; CHECK-NEXT: bb.1.cond.false:515 ; CHECK-NEXT: successors: %bb.2(0x80000000)516 ; CHECK-NEXT: {{ $}}517 ; CHECK-NEXT: bb.2.cond.end:518 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0519 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[PHI]](s32)520 ; CHECK-NEXT: $xmm0 = COPY [[ANYEXT]](s128)521 ; CHECK-NEXT: RET 0, implicit $xmm0522 bb.1.entry:523 successors: %bb.3(0x40000000), %bb.2(0x40000000)524 liveins: $edi, $xmm0, $xmm1525 526 %0:_(s32) = COPY $edi527 %3:_(s128) = COPY $xmm0528 %1:_(s32) = G_TRUNC %3(s128)529 %4:_(s128) = COPY $xmm1530 %2:_(s32) = G_TRUNC %4(s128)531 %5:_(s32) = G_CONSTANT i32 0532 %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5533 G_BRCOND %6(s1), %bb.3534 535 bb.2.cond.false:536 successors: %bb.3(0x80000000)537 538 539 bb.3.cond.end:540 %7:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.1541 %8:_(s128) = G_ANYEXT %7(s32)542 $xmm0 = COPY %8(s128)543 RET 0, implicit $xmm0544 545...546---547name: test_double548alignment: 16549legalized: false550regBankSelected: false551tracksRegLiveness: true552registers:553 - { id: 0, class: _, preferred-register: '' }554 - { id: 1, class: _, preferred-register: '' }555 - { id: 2, class: _, preferred-register: '' }556 - { id: 3, class: _, preferred-register: '' }557 - { id: 4, class: _, preferred-register: '' }558 - { id: 5, class: _, preferred-register: '' }559 - { id: 6, class: _, preferred-register: '' }560 - { id: 7, class: _, preferred-register: '' }561 - { id: 8, class: _, preferred-register: '' }562liveins:563fixedStack:564stack:565constants:566 567 568 569body: |570 ; CHECK-LABEL: name: test_double571 ; CHECK: bb.0.entry:572 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)573 ; CHECK-NEXT: liveins: $edi, $xmm0, $xmm1574 ; CHECK-NEXT: {{ $}}575 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi576 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm0577 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)578 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s128) = COPY $xmm1579 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY2]](s128)580 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0581 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]582 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)583 ; CHECK-NEXT: G_BRCOND [[TRUNC2]](s1), %bb.2584 ; CHECK-NEXT: {{ $}}585 ; CHECK-NEXT: bb.1.cond.false:586 ; CHECK-NEXT: successors: %bb.2(0x80000000)587 ; CHECK-NEXT: {{ $}}588 ; CHECK-NEXT: bb.2.cond.end:589 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s64) = G_PHI [[TRUNC1]](s64), %bb.1, [[TRUNC]](s64), %bb.0590 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[PHI]](s64)591 ; CHECK-NEXT: $xmm0 = COPY [[ANYEXT]](s128)592 ; CHECK-NEXT: RET 0, implicit $xmm0593 bb.1.entry:594 successors: %bb.3(0x40000000), %bb.2(0x40000000)595 liveins: $edi, $xmm0, $xmm1596 597 %0:_(s32) = COPY $edi598 %3:_(s128) = COPY $xmm0599 %1:_(s64) = G_TRUNC %3(s128)600 %4:_(s128) = COPY $xmm1601 %2:_(s64) = G_TRUNC %4(s128)602 %5:_(s32) = G_CONSTANT i32 0603 %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5604 G_BRCOND %6(s1), %bb.3605 606 bb.2.cond.false:607 successors: %bb.3(0x80000000)608 609 610 bb.3.cond.end:611 %7:_(s64) = G_PHI %2(s64), %bb.2, %1(s64), %bb.1612 %8:_(s128) = G_ANYEXT %7(s64)613 $xmm0 = COPY %8(s128)614 RET 0, implicit $xmm0615 616...617