brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.9 KiB · 92e4588 Raw
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