brintos

brintos / llvm-project-archived public Read only

0
0
Text · 119.8 KiB · 03d4c7d Raw
3820 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu                       -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=FAST3# RUN: llc -mtriple=x86_64-linux-gnu -regbankselect-greedy -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=GREEDY4 5--- |6  define i8 @test_add_i8(i8 %arg1, i8 %arg2) {7    %ret = add i8 %arg1, %arg28    ret i8 %ret9  }10 11  define i16 @test_add_i16(i16 %arg1, i16 %arg2) {12    %ret = add i16 %arg1, %arg213    ret i16 %ret14  }15 16  define i32 @test_add_i32(i32 %arg1, i32 %arg2) {17    %ret = add i32 %arg1, %arg218    ret i32 %ret19  }20 21  define i64 @test_add_i64(i64 %arg1, i64 %arg2) {22    %ret = add i64 %arg1, %arg223    ret i64 %ret24  }25 26  define void @test_mul_gpr() {27    ret void28  }29 30  define float @test_add_float(float %arg1, float %arg2) {31    %ret = fadd float %arg1, %arg232    ret float %ret33  }34 35  define double @test_add_double(double %arg1, double %arg2) {36    %ret = fadd double %arg1, %arg237    ret double %ret38  }39 40  define void @test_fsub_float() {41    %ret1 = fsub float undef, undef42    %ret2 = fsub double undef, undef43    ret void44  }45 46  define void @test_fmul_float() {47    %ret1 = fmul float undef, undef48    %ret2 = fmul double undef, undef49    ret void50  }51 52  define void @test_fdiv_float() {53    %ret1 = fdiv float undef, undef54    %ret2 = fdiv double undef, undef55    ret void56  }57 58 59  define <4 x i32> @test_add_v4i32(<4 x i32> %arg1, <4 x i32> %arg2) {60    %ret = add <4 x i32> %arg1, %arg261    ret <4 x i32> %ret62  }63 64  define <4 x float> @test_add_v4f32(<4 x float> %arg1, <4 x float> %arg2) {65    %ret = fadd <4 x float> %arg1, %arg266    ret <4 x float> %ret67  }68 69  define i8 @test_load_i8(ptr %p1) {70    %r = load i8, ptr %p171    ret i8 %r72  }73 74  define i16 @test_load_i16(ptr %p1) {75    %r = load i16, ptr %p176    ret i16 %r77  }78 79  define i32 @test_load_i32(ptr %p1) {80    %r = load i32, ptr %p181    ret i32 %r82  }83 84  define i64 @test_load_i64(ptr %p1) {85    %r = load i64, ptr %p186    ret i64 %r87  }88 89  define float @test_load_float(ptr %p1) {90    %r = load float, ptr %p191    ret float %r92  }93 94  define double @test_load_double(ptr %p1) {95    %r = load double, ptr %p196    ret double %r97  }98 99  define <4 x i32> @test_load_v4i32(ptr %p1) {100    %r = load <4 x i32>, ptr %p1, align 16101    ret <4 x i32> %r102  }103 104  define ptr @test_store_i32(i32 %val, ptr %p1) {105    store i32 %val, ptr %p1106    ret ptr %p1107  }108 109  define ptr @test_store_i64(i64 %val, ptr %p1) {110    store i64 %val, ptr %p1111    ret ptr %p1112  }113 114  define ptr @test_store_float(float %val, ptr %p1) {115    store float %val, ptr %p1116    ret ptr %p1117  }118 119  define ptr @test_store_double(double %val, ptr %p1) {120    store double %val, ptr %p1121    ret ptr %p1122  }123 124  define void @constInt_check() {125    ret void126  }127 128  define void @trunc_check() {129    ret void130  }131 132  define void @test_gep() {133    %p1 = getelementptr i32, ptr undef, i32 5134    %p2 = getelementptr i32, ptr undef, i64 5135    ret void136  }137 138  define i1 @test_icmp_eq_i8(i8 %a, i8 %b) {139    %r = icmp eq i8 %a, %b140    ret i1 %r141  }142 143  define i1 @test_icmp_eq_i16(i16 %a, i16 %b) {144    %r = icmp eq i16 %a, %b145    ret i1 %r146  }147 148  define i1 @test_icmp_eq_i32(i32 %a, i32 %b) {149    %r = icmp eq i32 %a, %b150    ret i1 %r151  }152 153  define i1 @test_icmp_eq_i64(i64 %a, i64 %b) {154    %r = icmp eq i64 %a, %b155    ret i1 %r156  }157 158  define i8 @test_xor_i8() {159    %ret = xor i8 undef, undef160    ret i8 %ret161  }162 163  define i16 @test_or_i16() {164    %ret = or i16 undef, undef165    ret i16 %ret166  }167 168  define i32 @test_and_i32() {169    %ret = and i32 undef, undef170    ret i32 %ret171  }172 173  define i64 @test_and_i64() {174    %ret = and i64 undef, undef175    ret i64 %ret176  }177 178  @g_int = global i32 0, align 4179 180  define ptr @test_global_ptrv() {181  entry:182    ret ptr @g_int183  }184 185  define i8 @test_undef() {186    ret i8 undef187  }188 189  define i8 @test_undef2(i8 %a) {190    %r = add i8 %a, undef191    ret i8 %r192  }193 194  define float @test_undef3() {195    ret float undef196  }197 198  define float @test_undef4(float %a) {199    %r = fadd float %a, undef200    ret float %r201  }202 203  define i32 @test_i32(i32 %a, i32 %f, i32 %t) {204  entry:205    %cmp = icmp sgt i32 %a, 0206    br i1 %cmp, label %cond.true, label %cond.false207 208  cond.true:                                        ; preds = %entry209    br label %cond.end210 211  cond.false:                                       ; preds = %entry212    br label %cond.end213 214  cond.end:                                         ; preds = %cond.false, %cond.true215    %cond = phi i32 [ %f, %cond.true ], [ %t, %cond.false ]216    ret i32 %cond217  }218 219  define float @test_float(i32 %a, float %f, float %t) {220  entry:221    %cmp = icmp sgt i32 %a, 0222    br i1 %cmp, label %cond.true, label %cond.false223 224  cond.true:                                        ; preds = %entry225    br label %cond.end226 227  cond.false:                                       ; preds = %entry228    br label %cond.end229 230  cond.end:                                         ; preds = %cond.false, %cond.true231    %cond = phi float [ %f, %cond.true ], [ %t, %cond.false ]232    ret float %cond233  }234 235  define double @test_fpext(float %a) {236  entry:237    %conv = fpext float %a to double238    ret double %conv239  }240 241  define float @test_fptrunc(double %a) {242  entry:243    %conv = fptrunc double %a to float244    ret float %conv245  }246 247  define void @test_fconstant() {248    ret void249  }250 251  define float @int32_to_float(i32 %a) {252  entry:253    %conv = sitofp i32 %a to float254    ret float %conv255  }256 257  define float @int64_to_float(i64 %a) {258  entry:259    %conv = sitofp i64 %a to float260    ret float %conv261  }262 263  define double @int32_to_double(i32 %a) {264  entry:265    %conv = sitofp i32 %a to double266    ret double %conv267  }268 269  define double @int64_to_double(i64 %a) {270  entry:271    %conv = sitofp i64 %a to double272    ret double %conv273  }274 275  define signext i8 @float_to_int8(float %val) {276  entry:277    %conv = fptosi float %val to i8278    ret i8 %conv279  }280 281  define signext i16 @float_to_int16(float %val) {282  entry:283    %conv = fptosi float %val to i16284    ret i16 %conv285  }286 287  define i32 @float_to_int32(float %val) {288  entry:289    %conv = fptosi float %val to i32290    ret i32 %conv291  }292 293  define i64 @float_to_int64(float %val) {294  entry:295    %conv = fptosi float %val to i64296    ret i64 %conv297  }298 299  define signext i8 @double_to_int8(double %val) {300  entry:301    %conv = fptosi double %val to i8302    ret i8 %conv303  }304 305  define signext i16 @double_to_int16(double %val) {306  entry:307    %conv = fptosi double %val to i16308    ret i16 %conv309  }310 311  define i32 @double_to_int32(double %val) {312  entry:313    %conv = fptosi double %val to i32314    ret i32 %conv315  }316 317  define i64 @double_to_int64(double %val) {318  entry:319    %conv = fptosi double %val to i64320    ret i64 %conv321  }322 323  define i1 @fcmp_float_oeq(float %x, float %y) {324    %1 = fcmp oeq float %x, %y325    ret i1 %1326  }327 328  define i1 @fcmp_float_ogt(float %x, float %y) {329    %1 = fcmp ogt float %x, %y330    ret i1 %1331  }332 333  define i1 @fcmp_float_oge(float %x, float %y) {334    %1 = fcmp oge float %x, %y335    ret i1 %1336  }337 338  define i1 @fcmp_float_olt(float %x, float %y) {339    %1 = fcmp olt float %x, %y340    ret i1 %1341  }342 343  define i1 @fcmp_float_ole(float %x, float %y) {344    %1 = fcmp ole float %x, %y345    ret i1 %1346  }347 348  define i1 @fcmp_float_one(float %x, float %y) {349    %1 = fcmp one float %x, %y350    ret i1 %1351  }352 353  define i1 @fcmp_float_ord(float %x, float %y) {354    %1 = fcmp ord float %x, %y355    ret i1 %1356  }357 358  define i1 @fcmp_float_uno(float %x, float %y) {359    %1 = fcmp uno float %x, %y360    ret i1 %1361  }362 363  define i1 @fcmp_float_ueq(float %x, float %y) {364    %1 = fcmp ueq float %x, %y365    ret i1 %1366  }367 368  define i1 @fcmp_float_ugt(float %x, float %y) {369    %1 = fcmp ugt float %x, %y370    ret i1 %1371  }372 373  define i1 @fcmp_float_uge(float %x, float %y) {374    %1 = fcmp uge float %x, %y375    ret i1 %1376  }377 378  define i1 @fcmp_float_ult(float %x, float %y) {379    %1 = fcmp ult float %x, %y380    ret i1 %1381  }382 383  define i1 @fcmp_float_ule(float %x, float %y) {384    %1 = fcmp ule float %x, %y385    ret i1 %1386  }387 388  define i1 @fcmp_float_une(float %x, float %y) {389    %1 = fcmp une float %x, %y390    ret i1 %1391  }392 393  define i1 @fcmp_double_oeq(double %x, double %y) {394    %1 = fcmp oeq double %x, %y395    ret i1 %1396  }397 398  define i1 @fcmp_double_ogt(double %x, double %y) {399    %1 = fcmp ogt double %x, %y400    ret i1 %1401  }402 403  define i1 @fcmp_double_oge(double %x, double %y) {404    %1 = fcmp oge double %x, %y405    ret i1 %1406  }407 408  define i1 @fcmp_double_olt(double %x, double %y) {409    %1 = fcmp olt double %x, %y410    ret i1 %1411  }412 413  define i1 @fcmp_double_ole(double %x, double %y) {414    %1 = fcmp ole double %x, %y415    ret i1 %1416  }417 418  define i1 @fcmp_double_one(double %x, double %y) {419    %1 = fcmp one double %x, %y420    ret i1 %1421  }422 423  define i1 @fcmp_double_ord(double %x, double %y) {424    %1 = fcmp ord double %x, %y425    ret i1 %1426  }427 428  define i1 @fcmp_double_uno(double %x, double %y) {429    %1 = fcmp uno double %x, %y430    ret i1 %1431  }432 433  define i1 @fcmp_double_ueq(double %x, double %y) {434    %1 = fcmp ueq double %x, %y435    ret i1 %1436  }437 438  define i1 @fcmp_double_ugt(double %x, double %y) {439    %1 = fcmp ugt double %x, %y440    ret i1 %1441  }442 443  define i1 @fcmp_double_uge(double %x, double %y) {444    %1 = fcmp uge double %x, %y445    ret i1 %1446  }447 448  define i1 @fcmp_double_ult(double %x, double %y) {449    %1 = fcmp ult double %x, %y450    ret i1 %1451  }452 453  define i1 @fcmp_double_ule(double %x, double %y) {454    %1 = fcmp ule double %x, %y455    ret i1 %1456  }457 458  define i1 @fcmp_double_une(double %x, double %y) {459    %1 = fcmp une double %x, %y460    ret i1 %1461  }462 463...464---465name:            test_add_i8466alignment:       16467legalized:       true468regBankSelected: false469selected:        false470tracksRegLiveness: true471registers:472  - { id: 0, class: _ }473  - { id: 1, class: _ }474  - { id: 2, class: _ }475body:             |476  bb.1 (%ir-block.0):477    liveins: $edi, $esi478 479    ; FAST-LABEL: name: test_add_i8480    ; FAST: liveins: $edi, $esi481    ; FAST: [[COPY:%[0-9]+]]:gpr(s8) = COPY $dil482    ; FAST: [[COPY1:%[0-9]+]]:gpr(s8) = COPY $sil483    ; FAST: [[ADD:%[0-9]+]]:gpr(s8) = G_ADD [[COPY]], [[COPY1]]484    ; FAST: $al = COPY [[ADD]](s8)485    ; FAST: RET 0, implicit $al486    ; GREEDY-LABEL: name: test_add_i8487    ; GREEDY: liveins: $edi, $esi488    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s8) = COPY $dil489    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s8) = COPY $sil490    ; GREEDY: [[ADD:%[0-9]+]]:gpr(s8) = G_ADD [[COPY]], [[COPY1]]491    ; GREEDY: $al = COPY [[ADD]](s8)492    ; GREEDY: RET 0, implicit $al493    %0(s8) = COPY $dil494    %1(s8) = COPY $sil495    %2(s8) = G_ADD %0, %1496    $al = COPY %2(s8)497    RET 0, implicit $al498 499...500---501name:            test_add_i16502alignment:       16503legalized:       true504regBankSelected: false505selected:        false506tracksRegLiveness: true507registers:508  - { id: 0, class: _ }509  - { id: 1, class: _ }510  - { id: 2, class: _ }511body:             |512  bb.1 (%ir-block.0):513    liveins: $edi, $esi514 515    ; FAST-LABEL: name: test_add_i16516    ; FAST: liveins: $edi, $esi517    ; FAST: [[COPY:%[0-9]+]]:gpr(s16) = COPY $di518    ; FAST: [[COPY1:%[0-9]+]]:gpr(s16) = COPY $si519    ; FAST: [[ADD:%[0-9]+]]:gpr(s16) = G_ADD [[COPY]], [[COPY1]]520    ; FAST: $ax = COPY [[ADD]](s16)521    ; FAST: RET 0, implicit $ax522    ; GREEDY-LABEL: name: test_add_i16523    ; GREEDY: liveins: $edi, $esi524    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s16) = COPY $di525    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s16) = COPY $si526    ; GREEDY: [[ADD:%[0-9]+]]:gpr(s16) = G_ADD [[COPY]], [[COPY1]]527    ; GREEDY: $ax = COPY [[ADD]](s16)528    ; GREEDY: RET 0, implicit $ax529    %0(s16) = COPY $di530    %1(s16) = COPY $si531    %2(s16) = G_ADD %0, %1532    $ax = COPY %2(s16)533    RET 0, implicit $ax534 535...536---537name:            test_add_i32538alignment:       16539legalized:       true540regBankSelected: false541selected:        false542tracksRegLiveness: true543registers:544  - { id: 0, class: _ }545  - { id: 1, class: _ }546  - { id: 2, class: _ }547body:             |548  bb.1 (%ir-block.0):549    liveins: $edi, $esi550 551    ; FAST-LABEL: name: test_add_i32552    ; FAST: liveins: $edi, $esi553    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi554    ; FAST: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi555    ; FAST: [[ADD:%[0-9]+]]:gpr(s32) = G_ADD [[COPY]], [[COPY1]]556    ; FAST: $eax = COPY [[ADD]](s32)557    ; FAST: RET 0, implicit $eax558    ; GREEDY-LABEL: name: test_add_i32559    ; GREEDY: liveins: $edi, $esi560    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi561    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi562    ; GREEDY: [[ADD:%[0-9]+]]:gpr(s32) = G_ADD [[COPY]], [[COPY1]]563    ; GREEDY: $eax = COPY [[ADD]](s32)564    ; GREEDY: RET 0, implicit $eax565    %0(s32) = COPY $edi566    %1(s32) = COPY $esi567    %2(s32) = G_ADD %0, %1568    $eax = COPY %2(s32)569    RET 0, implicit $eax570 571...572---573name:            test_add_i64574alignment:       16575legalized:       true576regBankSelected: false577selected:        false578tracksRegLiveness: true579registers:580  - { id: 0, class: _ }581  - { id: 1, class: _ }582  - { id: 2, class: _ }583body:             |584  bb.1 (%ir-block.0):585    liveins: $rdi, $rsi586 587    ; FAST-LABEL: name: test_add_i64588    ; FAST: liveins: $rdi, $rsi589    ; FAST: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi590    ; FAST: [[COPY1:%[0-9]+]]:gpr(s64) = COPY $rsi591    ; FAST: [[ADD:%[0-9]+]]:gpr(s64) = G_ADD [[COPY]], [[COPY1]]592    ; FAST: $rax = COPY [[ADD]](s64)593    ; FAST: RET 0, implicit $rax594    ; GREEDY-LABEL: name: test_add_i64595    ; GREEDY: liveins: $rdi, $rsi596    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi597    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s64) = COPY $rsi598    ; GREEDY: [[ADD:%[0-9]+]]:gpr(s64) = G_ADD [[COPY]], [[COPY1]]599    ; GREEDY: $rax = COPY [[ADD]](s64)600    ; GREEDY: RET 0, implicit $rax601    %0(s64) = COPY $rdi602    %1(s64) = COPY $rsi603    %2(s64) = G_ADD %0, %1604    $rax = COPY %2(s64)605    RET 0, implicit $rax606 607...608---609name:            test_mul_gpr610alignment:       16611legalized:       true612regBankSelected: false613selected:        false614tracksRegLiveness: true615registers:616  - { id: 0, class: _ }617  - { id: 1, class: _ }618  - { id: 2, class: _ }619  - { id: 3, class: _ }620  - { id: 4, class: _ }621  - { id: 5, class: _ }622  - { id: 6, class: _ }623  - { id: 7, class: _ }624body:             |625  bb.1 (%ir-block.0):626 627    ; FAST-LABEL: name: test_mul_gpr628    ; FAST: [[DEF:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF629    ; FAST: [[DEF1:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF630    ; FAST: [[DEF2:%[0-9]+]]:gpr(s16) = G_IMPLICIT_DEF631    ; FAST: [[DEF3:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF632    ; FAST: [[MUL:%[0-9]+]]:gpr(s64) = G_MUL [[DEF]], [[DEF]]633    ; FAST: [[MUL1:%[0-9]+]]:gpr(s32) = G_MUL [[DEF1]], [[DEF1]]634    ; FAST: [[MUL2:%[0-9]+]]:gpr(s16) = G_MUL [[DEF2]], [[DEF2]]635    ; FAST: [[MUL3:%[0-9]+]]:gpr(s8) = G_MUL [[DEF3]], [[DEF3]]636    ; FAST: RET 0637    ; GREEDY-LABEL: name: test_mul_gpr638    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF639    ; GREEDY: [[DEF1:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF640    ; GREEDY: [[DEF2:%[0-9]+]]:gpr(s16) = G_IMPLICIT_DEF641    ; GREEDY: [[DEF3:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF642    ; GREEDY: [[MUL:%[0-9]+]]:gpr(s64) = G_MUL [[DEF]], [[DEF]]643    ; GREEDY: [[MUL1:%[0-9]+]]:gpr(s32) = G_MUL [[DEF1]], [[DEF1]]644    ; GREEDY: [[MUL2:%[0-9]+]]:gpr(s16) = G_MUL [[DEF2]], [[DEF2]]645    ; GREEDY: [[MUL3:%[0-9]+]]:gpr(s8) = G_MUL [[DEF3]], [[DEF3]]646    ; GREEDY: RET 0647    %0(s64) = G_IMPLICIT_DEF648    %1(s32) = G_IMPLICIT_DEF649    %2(s16) = G_IMPLICIT_DEF650    %3(s8)  = G_IMPLICIT_DEF651    %4(s64) = G_MUL %0, %0652    %5(s32) = G_MUL %1, %1653    %6(s16) = G_MUL %2, %2654    %7(s8)  = G_MUL %3, %3655    RET 0656...657---658name:            test_add_float659alignment:       16660legalized:       true661regBankSelected: false662selected:        false663tracksRegLiveness: true664registers:665  - { id: 0, class: _ }666  - { id: 1, class: _ }667  - { id: 2, class: _ }668  - { id: 3, class: _ }669  - { id: 4, class: _ }670  - { id: 5, class: _ }671body:             |672  bb.1 (%ir-block.0):673    liveins: $xmm0, $xmm1674 675    ; FAST-LABEL: name: test_add_float676    ; FAST: liveins: $xmm0, $xmm1677    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm0678    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)679    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm1680    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)681    ; FAST: [[FADD:%[0-9]+]]:vecr(s32) = G_FADD [[TRUNC]], [[TRUNC1]]682    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s32)683    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)684    ; FAST: RET 0, implicit $xmm0685    ; GREEDY-LABEL: name: test_add_float686    ; GREEDY: liveins: $xmm0, $xmm1687    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm0688    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)689    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm1690    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)691    ; GREEDY: [[FADD:%[0-9]+]]:vecr(s32) = G_FADD [[TRUNC]], [[TRUNC1]]692    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s32)693    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)694    ; GREEDY: RET 0, implicit $xmm0695    %2:_(s128) = COPY $xmm0696    %0:_(s32) = G_TRUNC %2(s128)697    %3:_(s128) = COPY $xmm1698    %1:_(s32) = G_TRUNC %3(s128)699    %4:_(s32) = G_FADD %0, %1700    %5:_(s128) = G_ANYEXT %4(s32)701    $xmm0 = COPY %5(s128)702    RET 0, implicit $xmm0703 704...705---706name:            test_add_double707alignment:       16708legalized:       true709regBankSelected: false710selected:        false711tracksRegLiveness: true712registers:713  - { id: 0, class: _ }714  - { id: 1, class: _ }715  - { id: 2, class: _ }716  - { id: 3, class: _ }717  - { id: 4, class: _ }718  - { id: 5, class: _ }719body:             |720  bb.1 (%ir-block.0):721    liveins: $xmm0, $xmm1722 723    ; FAST-LABEL: name: test_add_double724    ; FAST: liveins: $xmm0, $xmm1725    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm0726    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)727    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm1728    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)729    ; FAST: [[FADD:%[0-9]+]]:vecr(s64) = G_FADD [[TRUNC]], [[TRUNC1]]730    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s64)731    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)732    ; FAST: RET 0, implicit $xmm0733    ; GREEDY-LABEL: name: test_add_double734    ; GREEDY: liveins: $xmm0, $xmm1735    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm0736    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)737    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm1738    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)739    ; GREEDY: [[FADD:%[0-9]+]]:vecr(s64) = G_FADD [[TRUNC]], [[TRUNC1]]740    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s64)741    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)742    ; GREEDY: RET 0, implicit $xmm0743    %2:_(s128) = COPY $xmm0744    %0:_(s64) = G_TRUNC %2(s128)745    %3:_(s128) = COPY $xmm1746    %1:_(s64) = G_TRUNC %3(s128)747    %4:_(s64) = G_FADD %0, %1748    %5:_(s128) = G_ANYEXT %4(s64)749    $xmm0 = COPY %5(s128)750    RET 0, implicit $xmm0751 752...753---754name:            test_fsub_float755alignment:       16756legalized:       true757regBankSelected: false758registers:759  - { id: 0, class: _, preferred-register: '' }760  - { id: 1, class: _, preferred-register: '' }761  - { id: 2, class: _, preferred-register: '' }762  - { id: 3, class: _, preferred-register: '' }763liveins:764fixedStack:765stack:766constants:767body:             |768  bb.1 (%ir-block.0):769    ; FAST-LABEL: name: test_fsub_float770    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF771    ; FAST: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF772    ; FAST: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)773    ; FAST: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)774    ; FAST: [[FSUB:%[0-9]+]]:vecr(s32) = G_FSUB [[COPY]], [[COPY1]]775    ; FAST: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)776    ; FAST: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)777    ; FAST: [[FSUB1:%[0-9]+]]:vecr(s64) = G_FSUB [[COPY2]], [[COPY3]]778    ; FAST: RET 0779    ; GREEDY-LABEL: name: test_fsub_float780    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF781    ; GREEDY: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF782    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)783    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)784    ; GREEDY: [[FSUB:%[0-9]+]]:vecr(s32) = G_FSUB [[COPY]], [[COPY1]]785    ; GREEDY: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)786    ; GREEDY: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)787    ; GREEDY: [[FSUB1:%[0-9]+]]:vecr(s64) = G_FSUB [[COPY2]], [[COPY3]]788    ; GREEDY: RET 0789    %0(s32) = G_IMPLICIT_DEF790    %2(s64) = G_IMPLICIT_DEF791    %1(s32) = G_FSUB %0, %0792    %3(s64) = G_FSUB %2, %2793    RET 0794 795...796---797name:            test_fmul_float798alignment:       16799legalized:       true800regBankSelected: false801registers:802  - { id: 0, class: _, preferred-register: '' }803  - { id: 1, class: _, preferred-register: '' }804  - { id: 2, class: _, preferred-register: '' }805  - { id: 3, class: _, preferred-register: '' }806liveins:807fixedStack:808stack:809constants:810body:             |811  bb.1 (%ir-block.0):812    ; FAST-LABEL: name: test_fmul_float813    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF814    ; FAST: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF815    ; FAST: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)816    ; FAST: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)817    ; FAST: [[FMUL:%[0-9]+]]:vecr(s32) = G_FMUL [[COPY]], [[COPY1]]818    ; FAST: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)819    ; FAST: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)820    ; FAST: [[FMUL1:%[0-9]+]]:vecr(s64) = G_FMUL [[COPY2]], [[COPY3]]821    ; FAST: RET 0822    ; GREEDY-LABEL: name: test_fmul_float823    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF824    ; GREEDY: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF825    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)826    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)827    ; GREEDY: [[FMUL:%[0-9]+]]:vecr(s32) = G_FMUL [[COPY]], [[COPY1]]828    ; GREEDY: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)829    ; GREEDY: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)830    ; GREEDY: [[FMUL1:%[0-9]+]]:vecr(s64) = G_FMUL [[COPY2]], [[COPY3]]831    ; GREEDY: RET 0832    %0(s32) = G_IMPLICIT_DEF833    %2(s64) = G_IMPLICIT_DEF834    %1(s32) = G_FMUL %0, %0835    %3(s64) = G_FMUL %2, %2836    RET 0837 838...839---840name:            test_fdiv_float841alignment:       16842legalized:       true843regBankSelected: false844registers:845  - { id: 0, class: _, preferred-register: '' }846  - { id: 1, class: _, preferred-register: '' }847  - { id: 2, class: _, preferred-register: '' }848  - { id: 3, class: _, preferred-register: '' }849liveins:850fixedStack:851stack:852constants:853body:             |854  bb.1 (%ir-block.0):855    ; FAST-LABEL: name: test_fdiv_float856    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF857    ; FAST: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF858    ; FAST: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)859    ; FAST: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)860    ; FAST: [[FDIV:%[0-9]+]]:vecr(s32) = G_FDIV [[COPY]], [[COPY1]]861    ; FAST: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)862    ; FAST: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)863    ; FAST: [[FDIV1:%[0-9]+]]:vecr(s64) = G_FDIV [[COPY2]], [[COPY3]]864    ; FAST: RET 0865    ; GREEDY-LABEL: name: test_fdiv_float866    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF867    ; GREEDY: [[DEF1:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF868    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)869    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)870    ; GREEDY: [[FDIV:%[0-9]+]]:vecr(s32) = G_FDIV [[COPY]], [[COPY1]]871    ; GREEDY: [[COPY2:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)872    ; GREEDY: [[COPY3:%[0-9]+]]:vecr(s64) = COPY [[DEF1]](s64)873    ; GREEDY: [[FDIV1:%[0-9]+]]:vecr(s64) = G_FDIV [[COPY2]], [[COPY3]]874    ; GREEDY: RET 0875    %0(s32) = G_IMPLICIT_DEF876    %2(s64) = G_IMPLICIT_DEF877    %1(s32) = G_FDIV %0, %0878    %3(s64) = G_FDIV %2, %2879    RET 0880 881...882---883name:            test_add_v4i32884alignment:       16885legalized:       true886regBankSelected: false887selected:        false888tracksRegLiveness: true889registers:890  - { id: 0, class: _ }891  - { id: 1, class: _ }892  - { id: 2, class: _ }893body:             |894  bb.1 (%ir-block.0):895    liveins: $xmm0, $xmm1896 897    ; FAST-LABEL: name: test_add_v4i32898    ; FAST: liveins: $xmm0, $xmm1899    ; FAST: [[COPY:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm0900    ; FAST: [[COPY1:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm1901    ; FAST: [[ADD:%[0-9]+]]:vecr(<4 x s32>) = G_ADD [[COPY]], [[COPY1]]902    ; FAST: $xmm0 = COPY [[ADD]](<4 x s32>)903    ; FAST: RET 0, implicit $xmm0904    ; GREEDY-LABEL: name: test_add_v4i32905    ; GREEDY: liveins: $xmm0, $xmm1906    ; GREEDY: [[COPY:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm0907    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm1908    ; GREEDY: [[ADD:%[0-9]+]]:vecr(<4 x s32>) = G_ADD [[COPY]], [[COPY1]]909    ; GREEDY: $xmm0 = COPY [[ADD]](<4 x s32>)910    ; GREEDY: RET 0, implicit $xmm0911    %0(<4 x s32>) = COPY $xmm0912    %1(<4 x s32>) = COPY $xmm1913    %2(<4 x s32>) = G_ADD %0, %1914    $xmm0 = COPY %2(<4 x s32>)915    RET 0, implicit $xmm0916 917...918---919name:            test_add_v4f32920alignment:       16921legalized:       true922regBankSelected: false923selected:        false924tracksRegLiveness: true925registers:926  - { id: 0, class: _ }927  - { id: 1, class: _ }928  - { id: 2, class: _ }929body:             |930  bb.1 (%ir-block.0):931    liveins: $xmm0, $xmm1932 933    ; FAST-LABEL: name: test_add_v4f32934    ; FAST: liveins: $xmm0, $xmm1935    ; FAST: [[COPY:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm0936    ; FAST: [[COPY1:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm1937    ; FAST: [[FADD:%[0-9]+]]:vecr(<4 x s32>) = G_FADD [[COPY]], [[COPY1]]938    ; FAST: $xmm0 = COPY [[FADD]](<4 x s32>)939    ; FAST: RET 0, implicit $xmm0940    ; GREEDY-LABEL: name: test_add_v4f32941    ; GREEDY: liveins: $xmm0, $xmm1942    ; GREEDY: [[COPY:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm0943    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(<4 x s32>) = COPY $xmm1944    ; GREEDY: [[FADD:%[0-9]+]]:vecr(<4 x s32>) = G_FADD [[COPY]], [[COPY1]]945    ; GREEDY: $xmm0 = COPY [[FADD]](<4 x s32>)946    ; GREEDY: RET 0, implicit $xmm0947    %0(<4 x s32>) = COPY $xmm0948    %1(<4 x s32>) = COPY $xmm1949    %2(<4 x s32>) = G_FADD %0, %1950    $xmm0 = COPY %2(<4 x s32>)951    RET 0, implicit $xmm0952 953...954---955name:            test_load_i8956alignment:       16957legalized:       true958regBankSelected: false959selected:        false960registers:961  - { id: 0, class: _ }962  - { id: 1, class: _ }963body:             |964  bb.1 (%ir-block.0):965    liveins: $rdi966 967    ; FAST-LABEL: name: test_load_i8968    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi969    ; FAST: [[LOAD:%[0-9]+]]:gpr(s8) = G_LOAD [[COPY]](p0) :: (load (s8) from %ir.p1)970    ; FAST: $al = COPY [[LOAD]](s8)971    ; FAST: RET 0, implicit $al972    ; GREEDY-LABEL: name: test_load_i8973    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi974    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s8) = G_LOAD [[COPY]](p0) :: (load (s8) from %ir.p1)975    ; GREEDY: $al = COPY [[LOAD]](s8)976    ; GREEDY: RET 0, implicit $al977    %0(p0) = COPY $rdi978    %1(s8) = G_LOAD %0(p0) :: (load (s8) from %ir.p1)979    $al = COPY %1(s8)980    RET 0, implicit $al981 982...983---984name:            test_load_i16985alignment:       16986legalized:       true987regBankSelected: false988selected:        false989registers:990  - { id: 0, class: _ }991  - { id: 1, class: _ }992body:             |993  bb.1 (%ir-block.0):994    liveins: $rdi995 996    ; FAST-LABEL: name: test_load_i16997    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi998    ; FAST: [[LOAD:%[0-9]+]]:gpr(s16) = G_LOAD [[COPY]](p0) :: (load (s16) from %ir.p1)999    ; FAST: $ax = COPY [[LOAD]](s16)1000    ; FAST: RET 0, implicit $ax1001    ; GREEDY-LABEL: name: test_load_i161002    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1003    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s16) = G_LOAD [[COPY]](p0) :: (load (s16) from %ir.p1)1004    ; GREEDY: $ax = COPY [[LOAD]](s16)1005    ; GREEDY: RET 0, implicit $ax1006    %0(p0) = COPY $rdi1007    %1(s16) = G_LOAD %0(p0) :: (load (s16) from %ir.p1)1008    $ax = COPY %1(s16)1009    RET 0, implicit $ax1010 1011...1012---1013name:            test_load_i321014alignment:       161015legalized:       true1016regBankSelected: false1017selected:        false1018registers:1019  - { id: 0, class: _ }1020  - { id: 1, class: _ }1021body:             |1022  bb.1 (%ir-block.0):1023    liveins: $rdi1024 1025    ; FAST-LABEL: name: test_load_i321026    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1027    ; FAST: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load (s32) from %ir.p1)1028    ; FAST: $eax = COPY [[LOAD]](s32)1029    ; FAST: RET 0, implicit $eax1030    ; GREEDY-LABEL: name: test_load_i321031    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1032    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load (s32) from %ir.p1)1033    ; GREEDY: $eax = COPY [[LOAD]](s32)1034    ; GREEDY: RET 0, implicit $eax1035    %0(p0) = COPY $rdi1036    %1(s32) = G_LOAD %0(p0) :: (load (s32) from %ir.p1)1037    $eax = COPY %1(s32)1038    RET 0, implicit $eax1039 1040...1041---1042name:            test_load_i641043alignment:       161044exposesReturnsTwice: false1045legalized:       true1046regBankSelected: false1047selected:        false1048registers:1049  - { id: 0, class: _ }1050  - { id: 1, class: _ }1051body:             |1052  bb.1 (%ir-block.0):1053    liveins: $rdi1054 1055    ; FAST-LABEL: name: test_load_i641056    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1057    ; FAST: [[LOAD:%[0-9]+]]:gpr(s64) = G_LOAD [[COPY]](p0) :: (load (s64) from %ir.p1)1058    ; FAST: $rax = COPY [[LOAD]](s64)1059    ; FAST: RET 0, implicit $rax1060    ; GREEDY-LABEL: name: test_load_i641061    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1062    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s64) = G_LOAD [[COPY]](p0) :: (load (s64) from %ir.p1)1063    ; GREEDY: $rax = COPY [[LOAD]](s64)1064    ; GREEDY: RET 0, implicit $rax1065    %0(p0) = COPY $rdi1066    %1(s64) = G_LOAD %0(p0) :: (load (s64) from %ir.p1)1067    $rax = COPY %1(s64)1068    RET 0, implicit $rax1069 1070...1071---1072name:            test_load_float1073alignment:       161074legalized:       true1075regBankSelected: false1076selected:        false1077registers:1078  - { id: 0, class: _ }1079  - { id: 1, class: _ }1080body:             |1081  bb.1 (%ir-block.0):1082    liveins: $rdi1083 1084    ; FAST-LABEL: name: test_load_float1085    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1086    ; FAST: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load (s32) from %ir.p1)1087    ; FAST: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[LOAD]](s32)1088    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[COPY1]](s32)1089    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)1090    ; FAST: RET 0, implicit $xmm01091    ; GREEDY-LABEL: name: test_load_float1092    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1093    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load (s32) from %ir.p1)1094    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[LOAD]](s32)1095    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[COPY1]](s32)1096    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)1097    ; GREEDY: RET 0, implicit $xmm01098    %0:_(p0) = COPY $rdi1099    %1:_(s32) = G_LOAD %0(p0) :: (load (s32) from %ir.p1)1100    %2:_(s128) = G_ANYEXT %1(s32)1101    $xmm0 = COPY %2(s128)1102    RET 0, implicit $xmm01103 1104...1105---1106name:            test_load_double1107alignment:       161108legalized:       true1109regBankSelected: false1110selected:        false1111registers:1112  - { id: 0, class: _ }1113  - { id: 1, class: _ }1114body:             |1115  bb.1 (%ir-block.0):1116    liveins: $rdi1117 1118    ; FAST-LABEL: name: test_load_double1119    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1120    ; FAST: [[LOAD:%[0-9]+]]:gpr(s64) = G_LOAD [[COPY]](p0) :: (load (s64) from %ir.p1)1121    ; FAST: [[COPY1:%[0-9]+]]:vecr(s64) = COPY [[LOAD]](s64)1122    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[COPY1]](s64)1123    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)1124    ; FAST: RET 0, implicit $xmm01125    ; GREEDY-LABEL: name: test_load_double1126    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1127    ; GREEDY: [[LOAD:%[0-9]+]]:gpr(s64) = G_LOAD [[COPY]](p0) :: (load (s64) from %ir.p1)1128    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s64) = COPY [[LOAD]](s64)1129    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[COPY1]](s64)1130    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)1131    ; GREEDY: RET 0, implicit $xmm01132    %0:_(p0) = COPY $rdi1133    %1:_(s64) = G_LOAD %0(p0) :: (load (s64) from %ir.p1)1134    %2:_(s128) = G_ANYEXT %1(s64)1135    $xmm0 = COPY %2(s128)1136    RET 0, implicit $xmm01137 1138...1139---1140name:            test_load_v4i321141alignment:       161142legalized:       true1143regBankSelected: false1144selected:        false1145registers:1146  - { id: 0, class: _ }1147  - { id: 1, class: _ }1148body:             |1149  bb.1 (%ir-block.0):1150    liveins: $rdi1151 1152    ; FAST-LABEL: name: test_load_v4i321153    ; FAST: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1154    ; FAST: [[LOAD:%[0-9]+]]:vecr(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.p1, align 1)1155    ; FAST: $xmm0 = COPY [[LOAD]](<4 x s32>)1156    ; FAST: RET 0, implicit $xmm01157    ; GREEDY-LABEL: name: test_load_v4i321158    ; GREEDY: [[COPY:%[0-9]+]]:gpr(p0) = COPY $rdi1159    ; GREEDY: [[LOAD:%[0-9]+]]:vecr(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.p1, align 1)1160    ; GREEDY: $xmm0 = COPY [[LOAD]](<4 x s32>)1161    ; GREEDY: RET 0, implicit $xmm01162    %0(p0) = COPY $rdi1163    %1(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.p1, align 1)1164    $xmm0 = COPY %1(<4 x s32>)1165    RET 0, implicit $xmm01166 1167...1168---1169name:            test_store_i321170alignment:       161171legalized:       true1172regBankSelected: false1173selected:        false1174registers:1175  - { id: 0, class: _ }1176  - { id: 1, class: _ }1177body:             |1178  bb.1 (%ir-block.0):1179    liveins: $edi, $rsi1180 1181    ; FAST-LABEL: name: test_store_i321182    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1183    ; FAST: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rsi1184    ; FAST: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32) into %ir.p1)1185    ; FAST: $rax = COPY [[COPY1]](p0)1186    ; FAST: RET 0, implicit $rax1187    ; GREEDY-LABEL: name: test_store_i321188    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1189    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rsi1190    ; GREEDY: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32) into %ir.p1)1191    ; GREEDY: $rax = COPY [[COPY1]](p0)1192    ; GREEDY: RET 0, implicit $rax1193    %0(s32) = COPY $edi1194    %1(p0) = COPY $rsi1195    G_STORE %0(s32), %1(p0) :: (store (s32) into %ir.p1)1196    $rax = COPY %1(p0)1197    RET 0, implicit $rax1198 1199...1200---1201name:            test_store_i641202alignment:       161203legalized:       true1204regBankSelected: false1205selected:        false1206registers:1207  - { id: 0, class: _ }1208  - { id: 1, class: _ }1209body:             |1210  bb.1 (%ir-block.0):1211    liveins: $rdi, $rsi1212 1213    ; FAST-LABEL: name: test_store_i641214    ; FAST: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi1215    ; FAST: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rsi1216    ; FAST: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64) into %ir.p1)1217    ; FAST: $rax = COPY [[COPY1]](p0)1218    ; FAST: RET 0, implicit $rax1219    ; GREEDY-LABEL: name: test_store_i641220    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi1221    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rsi1222    ; GREEDY: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64) into %ir.p1)1223    ; GREEDY: $rax = COPY [[COPY1]](p0)1224    ; GREEDY: RET 0, implicit $rax1225    %0(s64) = COPY $rdi1226    %1(p0) = COPY $rsi1227    G_STORE %0(s64), %1(p0) :: (store (s64) into %ir.p1)1228    $rax = COPY %1(p0)1229    RET 0, implicit $rax1230 1231...1232---1233name:            test_store_float1234alignment:       161235legalized:       true1236regBankSelected: false1237selected:        false1238 1239 1240 1241registers:1242  - { id: 0, class: _ }1243  - { id: 1, class: _ }1244body:             |1245  bb.1 (%ir-block.0):1246    liveins: $rdi, $xmm01247 1248    ; FAST-LABEL: name: test_store_float1249    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01250    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)1251    ; FAST: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rdi1252    ; FAST: [[COPY2:%[0-9]+]]:gpr(s32) = COPY [[TRUNC]](s32)1253    ; FAST: G_STORE [[COPY2]](s32), [[COPY1]](p0) :: (store (s32) into %ir.p1)1254    ; FAST: $rax = COPY [[COPY1]](p0)1255    ; FAST: RET 0, implicit $rax1256    ; GREEDY-LABEL: name: test_store_float1257    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01258    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)1259    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rdi1260    ; GREEDY: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32) into %ir.p1)1261    ; GREEDY: $rax = COPY [[COPY1]](p0)1262    ; GREEDY: RET 0, implicit $rax1263    %2:_(s128) = COPY $xmm01264    %0:_(s32) = G_TRUNC %2(s128)1265    %1:_(p0) = COPY $rdi1266    G_STORE %0(s32), %1(p0) :: (store (s32) into %ir.p1)1267    $rax = COPY %1(p0)1268    RET 0, implicit $rax1269 1270...1271---1272name:            test_store_double1273alignment:       161274legalized:       true1275regBankSelected: false1276selected:        false1277 1278 1279 1280registers:1281  - { id: 0, class: _ }1282  - { id: 1, class: _ }1283body:             |1284  bb.1 (%ir-block.0):1285    liveins: $rdi, $xmm01286 1287    ; FAST-LABEL: name: test_store_double1288    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01289    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)1290    ; FAST: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rdi1291    ; FAST: [[COPY2:%[0-9]+]]:gpr(s64) = COPY [[TRUNC]](s64)1292    ; FAST: G_STORE [[COPY2]](s64), [[COPY1]](p0) :: (store (s64) into %ir.p1)1293    ; FAST: $rax = COPY [[COPY1]](p0)1294    ; FAST: RET 0, implicit $rax1295    ; GREEDY-LABEL: name: test_store_double1296    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01297    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)1298    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(p0) = COPY $rdi1299    ; GREEDY: G_STORE [[TRUNC]](s64), [[COPY1]](p0) :: (store (s64) into %ir.p1)1300    ; GREEDY: $rax = COPY [[COPY1]](p0)1301    ; GREEDY: RET 0, implicit $rax1302    %2:_(s128) = COPY $xmm01303    %0:_(s64) = G_TRUNC %2(s128)1304    %1:_(p0) = COPY $rdi1305    G_STORE %0(s64), %1(p0) :: (store (s64) into %ir.p1)1306    $rax = COPY %1(p0)1307    RET 0, implicit $rax1308 1309...1310---1311name:            constInt_check1312alignment:       161313legalized:       true1314registers:1315  - { id: 0, class: _ }1316  - { id: 1, class: _ }1317  - { id: 2, class: _ }1318  - { id: 3, class: _ }1319body:             |1320  bb.0 (%ir-block.0):1321    ; FAST-LABEL: name: constInt_check1322    ; FAST: [[C:%[0-9]+]]:gpr(s8) = G_CONSTANT i8 81323    ; FAST: [[C1:%[0-9]+]]:gpr(s16) = G_CONSTANT i16 161324    ; FAST: [[C2:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 321325    ; FAST: [[C3:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 641326    ; FAST: RET 01327    ; GREEDY-LABEL: name: constInt_check1328    ; GREEDY: [[C:%[0-9]+]]:gpr(s8) = G_CONSTANT i8 81329    ; GREEDY: [[C1:%[0-9]+]]:gpr(s16) = G_CONSTANT i16 161330    ; GREEDY: [[C2:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 321331    ; GREEDY: [[C3:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 641332    ; GREEDY: RET 01333    %0(s8) = G_CONSTANT i8 81334    %1(s16) = G_CONSTANT i16 161335    %2(s32) = G_CONSTANT i32 321336    %3(s64) = G_CONSTANT i64 641337    RET 01338 1339...1340---1341name:            trunc_check1342alignment:       161343legalized:       true1344registers:1345  - { id: 0, class: _ }1346  - { id: 1, class: _ }1347  - { id: 2, class: _ }1348  - { id: 3, class: _ }1349body:             |1350  bb.0 (%ir-block.0):1351    ; FAST-LABEL: name: trunc_check1352    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1353    ; FAST: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[DEF]](s32)1354    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[DEF]](s32)1355    ; FAST: [[TRUNC2:%[0-9]+]]:gpr(s16) = G_TRUNC [[DEF]](s32)1356    ; FAST: RET 01357    ; GREEDY-LABEL: name: trunc_check1358    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1359    ; GREEDY: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[DEF]](s32)1360    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[DEF]](s32)1361    ; GREEDY: [[TRUNC2:%[0-9]+]]:gpr(s16) = G_TRUNC [[DEF]](s32)1362    ; GREEDY: RET 01363    %0(s32) = G_IMPLICIT_DEF1364    %1(s1) = G_TRUNC %0(s32)1365    %2(s8) = G_TRUNC %0(s32)1366    %3(s16) = G_TRUNC %0(s32)1367    RET 01368 1369...1370---1371name:            test_gep1372legalized:       true1373registers:1374  - { id: 0, class: _ }1375  - { id: 1, class: _ }1376  - { id: 2, class: _ }1377  - { id: 3, class: _ }1378  - { id: 4, class: _ }1379body:             |1380  bb.0 (%ir-block.0):1381    ; FAST-LABEL: name: test_gep1382    ; FAST: [[DEF:%[0-9]+]]:gpr(p0) = G_IMPLICIT_DEF1383    ; FAST: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 201384    ; FAST: [[PTR_ADD:%[0-9]+]]:gpr(p0) = G_PTR_ADD [[DEF]], [[C]](s64)1385    ; FAST: RET 01386    ;1387    ; GREEDY-LABEL: name: test_gep1388    ; GREEDY: [[DEF:%[0-9]+]]:gpr(p0) = G_IMPLICIT_DEF1389    ; GREEDY: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 201390    ; GREEDY: [[PTR_ADD:%[0-9]+]]:gpr(p0) = G_PTR_ADD [[DEF]], [[C]](s64)1391    ; GREEDY: RET 01392    %0(p0) = G_IMPLICIT_DEF1393    %1(s64) = G_CONSTANT i64 201394    %2(p0) = G_PTR_ADD %0, %1(s64)1395    RET 01396 1397...1398---1399name:            test_icmp_eq_i81400alignment:       161401legalized:       true1402regBankSelected: false1403registers:1404  - { id: 0, class: _ }1405  - { id: 1, class: _ }1406  - { id: 2, class: _ }1407body:             |1408  bb.1 (%ir-block.0):1409    liveins: $edi, $esi1410 1411    ; FAST-LABEL: name: test_icmp_eq_i81412    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1413    ; FAST: [[TRUNC:%[0-9]+]]:gpr(s8) = G_TRUNC [[COPY]](s32)1414    ; FAST: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1415    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[COPY1]](s32)1416    ; FAST: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[TRUNC]](s8), [[TRUNC1]]1417    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1418    ; FAST: $al = COPY [[COPY2]](s8)1419    ; FAST: RET 0, implicit $al1420    ; GREEDY-LABEL: name: test_icmp_eq_i81421    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1422    ; GREEDY: [[TRUNC:%[0-9]+]]:gpr(s8) = G_TRUNC [[COPY]](s32)1423    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1424    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[COPY1]](s32)1425    ; GREEDY: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[TRUNC]](s8), [[TRUNC1]]1426    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1427    ; GREEDY: $al = COPY [[COPY2]](s8)1428    ; GREEDY: RET 0, implicit $al1429    %2:_(s32) = COPY $edi1430    %0:_(s8) = G_TRUNC %2(s32)1431    %3:_(s32) = COPY $esi1432    %1:_(s8) = G_TRUNC %3(s32)1433    %6:_(s8) = G_ICMP intpred(eq), %0(s8), %11434    %5:_(s8) = COPY %6(s8)1435    $al = COPY %5(s8)1436    RET 0, implicit $al1437 1438...1439---1440name:            test_icmp_eq_i161441alignment:       161442legalized:       true1443regBankSelected: false1444registers:1445  - { id: 0, class: _ }1446  - { id: 1, class: _ }1447  - { id: 2, class: _ }1448body:             |1449  bb.1 (%ir-block.0):1450    liveins: $edi, $esi1451 1452    ; FAST-LABEL: name: test_icmp_eq_i161453    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1454    ; FAST: [[TRUNC:%[0-9]+]]:gpr(s16) = G_TRUNC [[COPY]](s32)1455    ; FAST: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1456    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[COPY1]](s32)1457    ; FAST: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[TRUNC]](s16), [[TRUNC1]]1458    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1459    ; FAST: $al = COPY [[COPY2]](s8)1460    ; FAST: RET 0, implicit $al1461    ; GREEDY-LABEL: name: test_icmp_eq_i161462    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1463    ; GREEDY: [[TRUNC:%[0-9]+]]:gpr(s16) = G_TRUNC [[COPY]](s32)1464    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1465    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[COPY1]](s32)1466    ; GREEDY: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[TRUNC]](s16), [[TRUNC1]]1467    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1468    ; GREEDY: $al = COPY [[COPY2]](s8)1469    ; GREEDY: RET 0, implicit $al1470    %2:_(s32) = COPY $edi1471    %0:_(s16) = G_TRUNC %2(s32)1472    %3:_(s32) = COPY $esi1473    %1:_(s16) = G_TRUNC %3(s32)1474    %6:_(s8) = G_ICMP intpred(eq), %0(s16), %11475    %5:_(s8) = COPY %6(s8)1476    $al = COPY %5(s8)1477    RET 0, implicit $al1478 1479...1480---1481name:            test_icmp_eq_i321482alignment:       161483legalized:       true1484regBankSelected: false1485registers:1486  - { id: 0, class: _ }1487  - { id: 1, class: _ }1488  - { id: 2, class: _ }1489body:             |1490  bb.1 (%ir-block.0):1491    liveins: $edi, $esi1492 1493    ; FAST-LABEL: name: test_icmp_eq_i321494    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1495    ; FAST: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1496    ; FAST: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]1497    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1498    ; FAST: $al = COPY [[COPY2]](s8)1499    ; FAST: RET 0, implicit $al1500    ; GREEDY-LABEL: name: test_icmp_eq_i321501    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1502    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1503    ; GREEDY: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]1504    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1505    ; GREEDY: $al = COPY [[COPY2]](s8)1506    ; GREEDY: RET 0, implicit $al1507    %0:_(s32) = COPY $edi1508    %1:_(s32) = COPY $esi1509    %4:_(s8) = G_ICMP intpred(eq), %0(s32), %11510    %3:_(s8) = COPY %4(s8)1511    $al = COPY %3(s8)1512    RET 0, implicit $al1513 1514...1515---1516name:            test_icmp_eq_i641517alignment:       161518legalized:       true1519regBankSelected: false1520registers:1521  - { id: 0, class: _ }1522  - { id: 1, class: _ }1523  - { id: 2, class: _ }1524body:             |1525  bb.1 (%ir-block.0):1526    liveins: $rdi, $rsi1527 1528    ; FAST-LABEL: name: test_icmp_eq_i641529    ; FAST: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi1530    ; FAST: [[COPY1:%[0-9]+]]:gpr(s64) = COPY $rsi1531    ; FAST: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]1532    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1533    ; FAST: $al = COPY [[COPY2]](s8)1534    ; FAST: RET 0, implicit $al1535    ; GREEDY-LABEL: name: test_icmp_eq_i641536    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi1537    ; GREEDY: [[COPY1:%[0-9]+]]:gpr(s64) = COPY $rsi1538    ; GREEDY: [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]1539    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[ICMP]](s8)1540    ; GREEDY: $al = COPY [[COPY2]](s8)1541    ; GREEDY: RET 0, implicit $al1542    %0:_(s64) = COPY $rdi1543    %1:_(s64) = COPY $rsi1544    %4:_(s8) = G_ICMP intpred(eq), %0(s64), %11545    %3:_(s8) = COPY %4(s8)1546    $al = COPY %3(s8)1547    RET 0, implicit $al1548 1549...1550---1551name:            test_xor_i81552alignment:       161553legalized:       true1554regBankSelected: false1555registers:1556  - { id: 0, class: _, preferred-register: '' }1557  - { id: 1, class: _, preferred-register: '' }1558liveins:1559fixedStack:1560stack:1561constants:1562body:             |1563  bb.1 (%ir-block.0):1564    ; FAST-LABEL: name: test_xor_i81565    ; FAST: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1566    ; FAST: [[XOR:%[0-9]+]]:gpr(s8) = G_XOR [[DEF]], [[DEF]]1567    ; FAST: $al = COPY [[XOR]](s8)1568    ; FAST: RET 0, implicit $al1569    ; GREEDY-LABEL: name: test_xor_i81570    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1571    ; GREEDY: [[XOR:%[0-9]+]]:gpr(s8) = G_XOR [[DEF]], [[DEF]]1572    ; GREEDY: $al = COPY [[XOR]](s8)1573    ; GREEDY: RET 0, implicit $al1574    %0(s8) = G_IMPLICIT_DEF1575    %1(s8) = G_XOR %0, %01576    $al = COPY %1(s8)1577    RET 0, implicit $al1578 1579...1580---1581name:            test_or_i161582alignment:       161583legalized:       true1584regBankSelected: false1585registers:1586  - { id: 0, class: _, preferred-register: '' }1587  - { id: 1, class: _, preferred-register: '' }1588liveins:1589fixedStack:1590stack:1591constants:1592body:             |1593  bb.1 (%ir-block.0):1594    ; FAST-LABEL: name: test_or_i161595    ; FAST: [[DEF:%[0-9]+]]:gpr(s16) = G_IMPLICIT_DEF1596    ; FAST: [[OR:%[0-9]+]]:gpr(s16) = G_OR [[DEF]], [[DEF]]1597    ; FAST: $ax = COPY [[OR]](s16)1598    ; FAST: RET 0, implicit $ax1599    ; GREEDY-LABEL: name: test_or_i161600    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s16) = G_IMPLICIT_DEF1601    ; GREEDY: [[OR:%[0-9]+]]:gpr(s16) = G_OR [[DEF]], [[DEF]]1602    ; GREEDY: $ax = COPY [[OR]](s16)1603    ; GREEDY: RET 0, implicit $ax1604    %0(s16) = G_IMPLICIT_DEF1605    %1(s16) = G_OR %0, %01606    $ax = COPY %1(s16)1607    RET 0, implicit $ax1608 1609...1610---1611name:            test_and_i321612alignment:       161613legalized:       true1614regBankSelected: false1615registers:1616  - { id: 0, class: _, preferred-register: '' }1617  - { id: 1, class: _, preferred-register: '' }1618liveins:1619fixedStack:1620stack:1621constants:1622body:             |1623  bb.1 (%ir-block.0):1624    ; FAST-LABEL: name: test_and_i321625    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1626    ; FAST: [[AND:%[0-9]+]]:gpr(s32) = G_AND [[DEF]], [[DEF]]1627    ; FAST: $eax = COPY [[AND]](s32)1628    ; FAST: RET 0, implicit $eax1629    ; GREEDY-LABEL: name: test_and_i321630    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1631    ; GREEDY: [[AND:%[0-9]+]]:gpr(s32) = G_AND [[DEF]], [[DEF]]1632    ; GREEDY: $eax = COPY [[AND]](s32)1633    ; GREEDY: RET 0, implicit $eax1634    %0(s32) = G_IMPLICIT_DEF1635    %1(s32) = G_AND %0, %01636    $eax = COPY %1(s32)1637    RET 0, implicit $eax1638 1639...1640---1641name:            test_and_i641642alignment:       161643legalized:       true1644regBankSelected: false1645registers:1646  - { id: 0, class: _, preferred-register: '' }1647  - { id: 1, class: _, preferred-register: '' }1648liveins:1649fixedStack:1650stack:1651constants:1652body:             |1653  bb.1 (%ir-block.0):1654    ; FAST-LABEL: name: test_and_i641655    ; FAST: [[DEF:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF1656    ; FAST: [[AND:%[0-9]+]]:gpr(s64) = G_AND [[DEF]], [[DEF]]1657    ; FAST: $rax = COPY [[AND]](s64)1658    ; FAST: RET 0, implicit $rax1659    ; GREEDY-LABEL: name: test_and_i641660    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s64) = G_IMPLICIT_DEF1661    ; GREEDY: [[AND:%[0-9]+]]:gpr(s64) = G_AND [[DEF]], [[DEF]]1662    ; GREEDY: $rax = COPY [[AND]](s64)1663    ; GREEDY: RET 0, implicit $rax1664    %0(s64) = G_IMPLICIT_DEF1665    %1(s64) = G_AND %0, %01666    $rax = COPY %1(s64)1667    RET 0, implicit $rax1668 1669...1670---1671name:            test_global_ptrv1672alignment:       161673legalized:       true1674regBankSelected: false1675registers:1676  - { id: 0, class: _, preferred-register: '' }1677body:             |1678  bb.1.entry:1679    ; FAST-LABEL: name: test_global_ptrv1680    ; FAST: [[GV:%[0-9]+]]:gpr(p0) = G_GLOBAL_VALUE @g_int1681    ; FAST: $rax = COPY [[GV]](p0)1682    ; FAST: RET 0, implicit $rax1683    ; GREEDY-LABEL: name: test_global_ptrv1684    ; GREEDY: [[GV:%[0-9]+]]:gpr(p0) = G_GLOBAL_VALUE @g_int1685    ; GREEDY: $rax = COPY [[GV]](p0)1686    ; GREEDY: RET 0, implicit $rax1687    %0(p0) = G_GLOBAL_VALUE @g_int1688    $rax = COPY %0(p0)1689    RET 0, implicit $rax1690 1691...1692---1693name:            test_undef1694alignment:       161695legalized:       true1696regBankSelected: false1697registers:1698  - { id: 0, class: _, preferred-register: '' }1699liveins:1700fixedStack:1701stack:1702constants:1703body:             |1704  bb.1 (%ir-block.0):1705    ; FAST-LABEL: name: test_undef1706    ; FAST: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1707    ; FAST: $al = COPY [[DEF]](s8)1708    ; FAST: RET 0, implicit $al1709    ; GREEDY-LABEL: name: test_undef1710    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1711    ; GREEDY: $al = COPY [[DEF]](s8)1712    ; GREEDY: RET 0, implicit $al1713    %0(s8) = G_IMPLICIT_DEF1714    $al = COPY %0(s8)1715    RET 0, implicit $al1716 1717...1718---1719name:            test_undef21720alignment:       161721legalized:       true1722regBankSelected: false1723registers:1724  - { id: 0, class: _, preferred-register: '' }1725  - { id: 1, class: _, preferred-register: '' }1726  - { id: 2, class: _, preferred-register: '' }1727liveins:1728fixedStack:1729stack:1730constants:1731body:             |1732  bb.1 (%ir-block.0):1733    liveins: $edi1734 1735    ; FAST-LABEL: name: test_undef21736    ; FAST: [[COPY:%[0-9]+]]:gpr(s8) = COPY $dil1737    ; FAST: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1738    ; FAST: [[ADD:%[0-9]+]]:gpr(s8) = G_ADD [[COPY]], [[DEF]]1739    ; FAST: $al = COPY [[ADD]](s8)1740    ; FAST: RET 0, implicit $al1741    ; GREEDY-LABEL: name: test_undef21742    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s8) = COPY $dil1743    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s8) = G_IMPLICIT_DEF1744    ; GREEDY: [[ADD:%[0-9]+]]:gpr(s8) = G_ADD [[COPY]], [[DEF]]1745    ; GREEDY: $al = COPY [[ADD]](s8)1746    ; GREEDY: RET 0, implicit $al1747    %0(s8) = COPY $dil1748    %1(s8) = G_IMPLICIT_DEF1749    %2(s8) = G_ADD %0, %11750    $al = COPY %2(s8)1751    RET 0, implicit $al1752 1753...1754---1755name:            test_undef31756alignment:       161757legalized:       true1758regBankSelected: false1759registers:1760  - { id: 1, class: _, preferred-register: '' }1761liveins:1762fixedStack:1763stack:1764constants:1765body:             |1766  bb.1 (%ir-block.0):1767    ; FAST-LABEL: name: test_undef31768    ; FAST: [[DEF:%[0-9]+]]:vecr(s128) = G_IMPLICIT_DEF1769    ; FAST: $xmm0 = COPY [[DEF]](s128)1770    ; FAST: RET 0, implicit $xmm01771    ; GREEDY-LABEL: name: test_undef31772    ; GREEDY: [[DEF:%[0-9]+]]:vecr(s128) = G_IMPLICIT_DEF1773    ; GREEDY: $xmm0 = COPY [[DEF]](s128)1774    ; GREEDY: RET 0, implicit $xmm01775    %1(s128) = G_IMPLICIT_DEF1776    $xmm0 = COPY %1(s128)1777    RET 0, implicit $xmm01778 1779...1780---1781name:            test_undef41782alignment:       161783legalized:       true1784regBankSelected: false1785registers:1786  - { id: 0, class: _, preferred-register: '' }1787  - { id: 1, class: _, preferred-register: '' }1788  - { id: 2, class: _, preferred-register: '' }1789  - { id: 3, class: _, preferred-register: '' }1790  - { id: 4, class: _, preferred-register: '' }1791liveins:1792fixedStack:1793stack:1794constants:1795body:             |1796  bb.1 (%ir-block.0):1797    liveins: $xmm01798 1799    ; FAST-LABEL: name: test_undef41800    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01801    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)1802    ; FAST: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1803    ; FAST: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)1804    ; FAST: [[FADD:%[0-9]+]]:vecr(s32) = G_FADD [[TRUNC]], [[COPY1]]1805    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s32)1806    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)1807    ; FAST: RET 0, implicit $xmm01808    ; GREEDY-LABEL: name: test_undef41809    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm01810    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)1811    ; GREEDY: [[DEF:%[0-9]+]]:gpr(s32) = G_IMPLICIT_DEF1812    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s32) = COPY [[DEF]](s32)1813    ; GREEDY: [[FADD:%[0-9]+]]:vecr(s32) = G_FADD [[TRUNC]], [[COPY1]]1814    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FADD]](s32)1815    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)1816    ; GREEDY: RET 0, implicit $xmm01817    %1:_(s128) = COPY $xmm01818    %0:_(s32) = G_TRUNC %1(s128)1819    %2:_(s32) = G_IMPLICIT_DEF1820    %3:_(s32) = G_FADD %0, %21821    %4:_(s128) = G_ANYEXT %3(s32)1822    $xmm0 = COPY %4(s128)1823    RET 0, implicit $xmm01824 1825...1826---1827name:            test_i321828alignment:       161829legalized:       true1830regBankSelected: false1831tracksRegLiveness: true1832registers:1833  - { id: 0, class: _, preferred-register: '' }1834  - { id: 1, class: _, preferred-register: '' }1835  - { id: 2, class: _, preferred-register: '' }1836  - { id: 3, class: _, preferred-register: '' }1837  - { id: 4, class: _, preferred-register: '' }1838  - { id: 5, class: _, preferred-register: '' }1839  - { id: 6, class: _, preferred-register: '' }1840body:             |1841  ; FAST-LABEL: name: test_i321842  ; FAST: bb.0.entry:1843  ; FAST:   successors: %bb.1(0x40000000), %bb.2(0x40000000)1844  ; FAST:   liveins: $edi, $edx, $esi1845  ; FAST:   [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1846  ; FAST:   [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1847  ; FAST:   [[COPY2:%[0-9]+]]:gpr(s32) = COPY $edx1848  ; FAST:   [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 01849  ; FAST:   [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]1850  ; FAST:   [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s8)1851  ; FAST:   G_BRCOND [[TRUNC]](s1), %bb.11852  ; FAST:   G_BR %bb.21853  ; FAST: bb.1.cond.true:1854  ; FAST:   successors: %bb.3(0x80000000)1855  ; FAST:   G_BR %bb.31856  ; FAST: bb.2.cond.false:1857  ; FAST:   successors: %bb.3(0x80000000)1858  ; FAST: bb.3.cond.end:1859  ; FAST:   [[PHI:%[0-9]+]]:gpr(s32) = G_PHI [[COPY1]](s32), %bb.1, [[COPY2]](s32), %bb.21860  ; FAST:   $eax = COPY [[PHI]](s32)1861  ; FAST:   RET 0, implicit $eax1862  ; GREEDY-LABEL: name: test_i321863  ; GREEDY: bb.0.entry:1864  ; GREEDY:   successors: %bb.1(0x40000000), %bb.2(0x40000000)1865  ; GREEDY:   liveins: $edi, $edx, $esi1866  ; GREEDY:   [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1867  ; GREEDY:   [[COPY1:%[0-9]+]]:gpr(s32) = COPY $esi1868  ; GREEDY:   [[COPY2:%[0-9]+]]:gpr(s32) = COPY $edx1869  ; GREEDY:   [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 01870  ; GREEDY:   [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]1871  ; GREEDY:   [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s8)1872  ; GREEDY:   G_BRCOND [[TRUNC]](s1), %bb.11873  ; GREEDY:   G_BR %bb.21874  ; GREEDY: bb.1.cond.true:1875  ; GREEDY:   successors: %bb.3(0x80000000)1876  ; GREEDY:   G_BR %bb.31877  ; GREEDY: bb.2.cond.false:1878  ; GREEDY:   successors: %bb.3(0x80000000)1879  ; GREEDY: bb.3.cond.end:1880  ; GREEDY:   [[PHI:%[0-9]+]]:gpr(s32) = G_PHI [[COPY1]](s32), %bb.1, [[COPY2]](s32), %bb.21881  ; GREEDY:   $eax = COPY [[PHI]](s32)1882  ; GREEDY:   RET 0, implicit $eax1883  bb.0.entry:1884    successors: %bb.1(0x40000000), %bb.2(0x40000000)1885    liveins: $edi, $edx, $esi1886 1887    %0(s32) = COPY $edi1888    %1(s32) = COPY $esi1889    %2(s32) = COPY $edx1890    %3(s32) = G_CONSTANT i32 01891    %6(s8) = G_ICMP intpred(sgt), %0(s32), %31892    %4(s1) = G_TRUNC %6(s8)1893    G_BRCOND %4(s1), %bb.11894    G_BR %bb.21895 1896  bb.1.cond.true:1897    successors: %bb.3(0x80000000)1898 1899    G_BR %bb.31900 1901  bb.2.cond.false:1902    successors: %bb.3(0x80000000)1903 1904  bb.3.cond.end:1905    %5(s32) = G_PHI %1(s32), %bb.1, %2(s32), %bb.21906    $eax = COPY %5(s32)1907    RET 0, implicit $eax1908 1909...1910---1911name:            test_float1912alignment:       161913legalized:       true1914regBankSelected: false1915tracksRegLiveness: true1916registers:1917  - { id: 0, class: _, preferred-register: '' }1918  - { id: 1, class: _, preferred-register: '' }1919  - { id: 2, class: _, preferred-register: '' }1920  - { id: 3, class: _, preferred-register: '' }1921  - { id: 4, class: _, preferred-register: '' }1922  - { id: 5, class: _, preferred-register: '' }1923body:             |1924  ; FAST-LABEL: name: test_float1925  ; FAST: bb.0.entry:1926  ; FAST:   successors: %bb.2(0x40000000), %bb.1(0x40000000)1927  ; FAST:   liveins: $edi, $xmm0, $xmm11928  ; FAST:   [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1929  ; FAST:   [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm01930  ; FAST:   [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)1931  ; FAST:   [[COPY2:%[0-9]+]]:vecr(s128) = COPY $xmm11932  ; FAST:   [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY2]](s128)1933  ; FAST:   [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 01934  ; FAST:   [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]1935  ; FAST:   [[TRUNC2:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s8)1936  ; FAST:   G_BRCOND [[TRUNC2]](s1), %bb.21937  ; FAST: bb.1.cond.false:1938  ; FAST:   successors: %bb.2(0x80000000)1939  ; FAST: bb.2.cond.end:1940  ; FAST:   [[PHI:%[0-9]+]]:vecr(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.01941  ; FAST:   [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[PHI]](s32)1942  ; FAST:   $xmm0 = COPY [[ANYEXT]](s128)1943  ; FAST:   RET 0, implicit $xmm01944  ; GREEDY-LABEL: name: test_float1945  ; GREEDY: bb.0.entry:1946  ; GREEDY:   successors: %bb.2(0x40000000), %bb.1(0x40000000)1947  ; GREEDY:   liveins: $edi, $xmm0, $xmm11948  ; GREEDY:   [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi1949  ; GREEDY:   [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm01950  ; GREEDY:   [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)1951  ; GREEDY:   [[COPY2:%[0-9]+]]:vecr(s128) = COPY $xmm11952  ; GREEDY:   [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY2]](s128)1953  ; GREEDY:   [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 01954  ; GREEDY:   [[ICMP:%[0-9]+]]:gpr(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]1955  ; GREEDY:   [[TRUNC2:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s8)1956  ; GREEDY:   G_BRCOND [[TRUNC2]](s1), %bb.21957  ; GREEDY: bb.1.cond.false:1958  ; GREEDY:   successors: %bb.2(0x80000000)1959  ; GREEDY: bb.2.cond.end:1960  ; GREEDY:   [[PHI:%[0-9]+]]:vecr(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.01961  ; GREEDY:   [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[PHI]](s32)1962  ; GREEDY:   $xmm0 = COPY [[ANYEXT]](s128)1963  ; GREEDY:   RET 0, implicit $xmm01964  bb.1.entry:1965    successors: %bb.3(0x40000000), %bb.2(0x40000000)1966    liveins: $edi, $xmm0, $xmm11967 1968    %0:_(s32) = COPY $edi1969    %3:_(s128) = COPY $xmm01970    %1:_(s32) = G_TRUNC %3(s128)1971    %4:_(s128) = COPY $xmm11972    %2:_(s32) = G_TRUNC %4(s128)1973    %5:_(s32) = G_CONSTANT i32 01974    %9:_(s8) = G_ICMP intpred(sgt), %0(s32), %51975    %6:_(s1) = G_TRUNC %9(s8)1976    G_BRCOND %6(s1), %bb.31977 1978  bb.2.cond.false:1979    successors: %bb.3(0x80000000)1980 1981 1982  bb.3.cond.end:1983    %7:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.11984    %8:_(s128) = G_ANYEXT %7(s32)1985    $xmm0 = COPY %8(s128)1986    RET 0, implicit $xmm01987 1988...1989---1990name:            test_fpext1991alignment:       161992legalized:       true1993regBankSelected: false1994registers:1995  - { id: 0, class: _, preferred-register: '' }1996  - { id: 1, class: _, preferred-register: '' }1997body:             |1998  bb.1.entry:1999    liveins: $xmm02000 2001    ; FAST-LABEL: name: test_fpext2002    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02003    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2004    ; FAST: [[FPEXT:%[0-9]+]]:vecr(s64) = G_FPEXT [[TRUNC]](s32)2005    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FPEXT]](s64)2006    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2007    ; FAST: RET 0, implicit $xmm02008    ; GREEDY-LABEL: name: test_fpext2009    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02010    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2011    ; GREEDY: [[FPEXT:%[0-9]+]]:vecr(s64) = G_FPEXT [[TRUNC]](s32)2012    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FPEXT]](s64)2013    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2014    ; GREEDY: RET 0, implicit $xmm02015    %1:_(s128) = COPY $xmm02016    %0:_(s32) = G_TRUNC %1(s128)2017    %2:_(s64) = G_FPEXT %0(s32)2018    %3:_(s128) = G_ANYEXT %2(s64)2019    $xmm0 = COPY %3(s128)2020    RET 0, implicit $xmm02021 2022...2023---2024name:            test_fptrunc2025alignment:       162026legalized:       true2027tracksRegLiveness: true2028registers:2029  - { id: 0, class: _ }2030  - { id: 1, class: _ }2031  - { id: 2, class: _ }2032  - { id: 3, class: _ }2033body:             |2034  bb.1.entry:2035    liveins: $xmm02036 2037    ; FAST-LABEL: name: test_fptrunc2038    ; FAST: liveins: $xmm02039    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02040    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2041    ; FAST: [[FPTRUNC:%[0-9]+]]:vecr(s32) = G_FPTRUNC [[TRUNC]](s64)2042    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FPTRUNC]](s32)2043    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2044    ; FAST: RET 0, implicit $xmm02045    ; GREEDY-LABEL: name: test_fptrunc2046    ; GREEDY: liveins: $xmm02047    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02048    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2049    ; GREEDY: [[FPTRUNC:%[0-9]+]]:vecr(s32) = G_FPTRUNC [[TRUNC]](s64)2050    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[FPTRUNC]](s32)2051    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2052    ; GREEDY: RET 0, implicit $xmm02053    %1:_(s128) = COPY $xmm02054    %0:_(s64) = G_TRUNC %1(s128)2055    %2:_(s32) = G_FPTRUNC %0(s64)2056    %3:_(s128) = G_ANYEXT %2(s32)2057    $xmm0 = COPY %3(s128)2058    RET 0, implicit $xmm02059 2060...2061---2062name:            test_fconstant2063# ALL-LABEL: name:            test_fconstant2064legalized:       true2065registers:2066  - { id: 0, class: _ }2067  - { id: 1, class: _ }2068body: |2069  bb.0:2070    ; FAST-LABEL: name: test_fconstant2071    ; FAST: [[C:%[0-9]+]]:vecr(s32) = G_FCONSTANT float 1.000000e+002072    ; FAST: [[C1:%[0-9]+]]:vecr(s64) = G_FCONSTANT double 2.000000e+002073    ; GREEDY-LABEL: name: test_fconstant2074    ; GREEDY: [[C:%[0-9]+]]:vecr(s32) = G_FCONSTANT float 1.000000e+002075    ; GREEDY: [[C1:%[0-9]+]]:vecr(s64) = G_FCONSTANT double 2.000000e+002076    %0(s32) = G_FCONSTANT float 1.02077    %1(s64) = G_FCONSTANT double 2.02078 2079...2080---2081name:            int32_to_float2082alignment:       162083legalized:       true2084tracksRegLiveness: true2085registers:2086  - { id: 0, class: _ }2087  - { id: 1, class: _ }2088  - { id: 2, class: _ }2089body:             |2090  bb.1.entry:2091    liveins: $edi2092 2093    ; FAST-LABEL: name: int32_to_float2094    ; FAST: liveins: $edi2095    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi2096    ; FAST: [[SITOFP:%[0-9]+]]:vecr(s32) = G_SITOFP [[COPY]](s32)2097    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s32)2098    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2099    ; FAST: RET 0, implicit $xmm02100    ; GREEDY-LABEL: name: int32_to_float2101    ; GREEDY: liveins: $edi2102    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi2103    ; GREEDY: [[SITOFP:%[0-9]+]]:vecr(s32) = G_SITOFP [[COPY]](s32)2104    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s32)2105    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2106    ; GREEDY: RET 0, implicit $xmm02107    %0:_(s32) = COPY $edi2108    %1:_(s32) = G_SITOFP %0(s32)2109    %2:_(s128) = G_ANYEXT %1(s32)2110    $xmm0 = COPY %2(s128)2111    RET 0, implicit $xmm02112 2113...2114---2115name:            int64_to_float2116alignment:       162117legalized:       true2118tracksRegLiveness: true2119registers:2120  - { id: 0, class: _ }2121  - { id: 1, class: _ }2122  - { id: 2, class: _ }2123body:             |2124  bb.1.entry:2125    liveins: $rdi2126 2127    ; FAST-LABEL: name: int64_to_float2128    ; FAST: liveins: $rdi2129    ; FAST: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi2130    ; FAST: [[SITOFP:%[0-9]+]]:vecr(s32) = G_SITOFP [[COPY]](s64)2131    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s32)2132    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2133    ; FAST: RET 0, implicit $xmm02134    ; GREEDY-LABEL: name: int64_to_float2135    ; GREEDY: liveins: $rdi2136    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi2137    ; GREEDY: [[SITOFP:%[0-9]+]]:vecr(s32) = G_SITOFP [[COPY]](s64)2138    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s32)2139    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2140    ; GREEDY: RET 0, implicit $xmm02141    %0:_(s64) = COPY $rdi2142    %1:_(s32) = G_SITOFP %0(s64)2143    %2:_(s128) = G_ANYEXT %1(s32)2144    $xmm0 = COPY %2(s128)2145    RET 0, implicit $xmm02146 2147...2148---2149name:            int32_to_double2150alignment:       162151legalized:       true2152tracksRegLiveness: true2153registers:2154  - { id: 0, class: _ }2155  - { id: 1, class: _ }2156  - { id: 2, class: _ }2157body:             |2158  bb.1.entry:2159    liveins: $edi2160 2161    ; FAST-LABEL: name: int32_to_double2162    ; FAST: liveins: $edi2163    ; FAST: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi2164    ; FAST: [[SITOFP:%[0-9]+]]:vecr(s64) = G_SITOFP [[COPY]](s32)2165    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s64)2166    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2167    ; FAST: RET 0, implicit $xmm02168    ; GREEDY-LABEL: name: int32_to_double2169    ; GREEDY: liveins: $edi2170    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s32) = COPY $edi2171    ; GREEDY: [[SITOFP:%[0-9]+]]:vecr(s64) = G_SITOFP [[COPY]](s32)2172    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s64)2173    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2174    ; GREEDY: RET 0, implicit $xmm02175    %0:_(s32) = COPY $edi2176    %1:_(s64) = G_SITOFP %0(s32)2177    %2:_(s128) = G_ANYEXT %1(s64)2178    $xmm0 = COPY %2(s128)2179    RET 0, implicit $xmm02180 2181...2182---2183name:            int64_to_double2184alignment:       162185legalized:       true2186tracksRegLiveness: true2187registers:2188  - { id: 0, class: _ }2189  - { id: 1, class: _ }2190  - { id: 2, class: _ }2191body:             |2192  bb.1.entry:2193    liveins: $rdi2194 2195    ; FAST-LABEL: name: int64_to_double2196    ; FAST: liveins: $rdi2197    ; FAST: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi2198    ; FAST: [[SITOFP:%[0-9]+]]:vecr(s64) = G_SITOFP [[COPY]](s64)2199    ; FAST: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s64)2200    ; FAST: $xmm0 = COPY [[ANYEXT]](s128)2201    ; FAST: RET 0, implicit $xmm02202    ; GREEDY-LABEL: name: int64_to_double2203    ; GREEDY: liveins: $rdi2204    ; GREEDY: [[COPY:%[0-9]+]]:gpr(s64) = COPY $rdi2205    ; GREEDY: [[SITOFP:%[0-9]+]]:vecr(s64) = G_SITOFP [[COPY]](s64)2206    ; GREEDY: [[ANYEXT:%[0-9]+]]:vecr(s128) = G_ANYEXT [[SITOFP]](s64)2207    ; GREEDY: $xmm0 = COPY [[ANYEXT]](s128)2208    ; GREEDY: RET 0, implicit $xmm02209    %0:_(s64) = COPY $rdi2210    %1:_(s64) = G_SITOFP %0(s64)2211    %2:_(s128) = G_ANYEXT %1(s64)2212    $xmm0 = COPY %2(s128)2213    RET 0, implicit $xmm02214 2215...2216---2217name:            float_to_int82218alignment:       162219legalized:       true2220tracksRegLiveness: true2221registers:2222  - { id: 0, class: _ }2223  - { id: 1, class: _ }2224  - { id: 2, class: _ }2225  - { id: 3, class: _ }2226body:             |2227  bb.1.entry:2228    liveins: $xmm02229 2230    ; FAST-LABEL: name: float_to_int82231    ; FAST: liveins: $xmm02232    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02233    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2234    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2235    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[FPTOSI]](s32)2236    ; FAST: $al = COPY [[TRUNC1]](s8)2237    ; FAST: RET 0, implicit $al2238    ; GREEDY-LABEL: name: float_to_int82239    ; GREEDY: liveins: $xmm02240    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02241    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2242    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2243    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[FPTOSI]](s32)2244    ; GREEDY: $al = COPY [[TRUNC1]](s8)2245    ; GREEDY: RET 0, implicit $al2246    %1:_(s128) = COPY $xmm02247    %0:_(s32) = G_TRUNC %1(s128)2248    %3:_(s32) = G_FPTOSI %0(s32)2249    %2:_(s8) = G_TRUNC %3(s32)2250    $al = COPY %2(s8)2251    RET 0, implicit $al2252 2253...2254---2255name:            float_to_int162256alignment:       162257legalized:       true2258tracksRegLiveness: true2259registers:2260  - { id: 0, class: _ }2261  - { id: 1, class: _ }2262  - { id: 2, class: _ }2263  - { id: 3, class: _ }2264body:             |2265  bb.1.entry:2266    liveins: $xmm02267 2268    ; FAST-LABEL: name: float_to_int162269    ; FAST: liveins: $xmm02270    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02271    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2272    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2273    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[FPTOSI]](s32)2274    ; FAST: $ax = COPY [[TRUNC1]](s16)2275    ; FAST: RET 0, implicit $ax2276    ; GREEDY-LABEL: name: float_to_int162277    ; GREEDY: liveins: $xmm02278    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02279    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2280    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2281    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[FPTOSI]](s32)2282    ; GREEDY: $ax = COPY [[TRUNC1]](s16)2283    ; GREEDY: RET 0, implicit $ax2284    %1:_(s128) = COPY $xmm02285    %0:_(s32) = G_TRUNC %1(s128)2286    %3:_(s32) = G_FPTOSI %0(s32)2287    %2:_(s16) = G_TRUNC %3(s32)2288    $ax = COPY %2(s16)2289    RET 0, implicit $ax2290 2291...2292---2293name:            float_to_int322294alignment:       162295legalized:       true2296tracksRegLiveness: true2297registers:2298  - { id: 0, class: _ }2299  - { id: 1, class: _ }2300  - { id: 2, class: _ }2301body:             |2302  bb.1.entry:2303    liveins: $xmm02304 2305    ; FAST-LABEL: name: float_to_int322306    ; FAST: liveins: $xmm02307    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02308    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2309    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2310    ; FAST: $eax = COPY [[FPTOSI]](s32)2311    ; FAST: RET 0, implicit $eax2312    ; GREEDY-LABEL: name: float_to_int322313    ; GREEDY: liveins: $xmm02314    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02315    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2316    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s32)2317    ; GREEDY: $eax = COPY [[FPTOSI]](s32)2318    ; GREEDY: RET 0, implicit $eax2319    %1:_(s128) = COPY $xmm02320    %0:_(s32) = G_TRUNC %1(s128)2321    %2:_(s32) = G_FPTOSI %0(s32)2322    $eax = COPY %2(s32)2323    RET 0, implicit $eax2324 2325...2326---2327name:            float_to_int642328alignment:       162329legalized:       true2330tracksRegLiveness: true2331registers:2332  - { id: 0, class: _ }2333  - { id: 1, class: _ }2334  - { id: 2, class: _ }2335body:             |2336  bb.1.entry:2337    liveins: $xmm02338 2339    ; FAST-LABEL: name: float_to_int642340    ; FAST: liveins: $xmm02341    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02342    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2343    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[TRUNC]](s32)2344    ; FAST: $rax = COPY [[FPTOSI]](s64)2345    ; FAST: RET 0, implicit $rax2346    ; GREEDY-LABEL: name: float_to_int642347    ; GREEDY: liveins: $xmm02348    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02349    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2350    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[TRUNC]](s32)2351    ; GREEDY: $rax = COPY [[FPTOSI]](s64)2352    ; GREEDY: RET 0, implicit $rax2353    %1:_(s128) = COPY $xmm02354    %0:_(s32) = G_TRUNC %1(s128)2355    %2:_(s64) = G_FPTOSI %0(s32)2356    $rax = COPY %2(s64)2357    RET 0, implicit $rax2358 2359...2360---2361name:            double_to_int82362alignment:       162363legalized:       true2364tracksRegLiveness: true2365registers:2366  - { id: 0, class: _ }2367  - { id: 1, class: _ }2368  - { id: 2, class: _ }2369  - { id: 3, class: _ }2370body:             |2371  bb.1.entry:2372    liveins: $xmm02373 2374    ; FAST-LABEL: name: double_to_int82375    ; FAST: liveins: $xmm02376    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02377    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2378    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2379    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[FPTOSI]](s32)2380    ; FAST: $al = COPY [[TRUNC1]](s8)2381    ; FAST: RET 0, implicit $al2382    ; GREEDY-LABEL: name: double_to_int82383    ; GREEDY: liveins: $xmm02384    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02385    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2386    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2387    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s8) = G_TRUNC [[FPTOSI]](s32)2388    ; GREEDY: $al = COPY [[TRUNC1]](s8)2389    ; GREEDY: RET 0, implicit $al2390    %1:_(s128) = COPY $xmm02391    %0:_(s64) = G_TRUNC %1(s128)2392    %3:_(s32) = G_FPTOSI %0(s64)2393    %2:_(s8) = G_TRUNC %3(s32)2394    $al = COPY %2(s8)2395    RET 0, implicit $al2396 2397...2398---2399name:            double_to_int162400alignment:       162401legalized:       true2402tracksRegLiveness: true2403registers:2404  - { id: 0, class: _ }2405  - { id: 1, class: _ }2406  - { id: 2, class: _ }2407  - { id: 3, class: _ }2408body:             |2409  bb.1.entry:2410    liveins: $xmm02411 2412    ; FAST-LABEL: name: double_to_int162413    ; FAST: liveins: $xmm02414    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02415    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2416    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2417    ; FAST: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[FPTOSI]](s32)2418    ; FAST: $ax = COPY [[TRUNC1]](s16)2419    ; FAST: RET 0, implicit $ax2420    ; GREEDY-LABEL: name: double_to_int162421    ; GREEDY: liveins: $xmm02422    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02423    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2424    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2425    ; GREEDY: [[TRUNC1:%[0-9]+]]:gpr(s16) = G_TRUNC [[FPTOSI]](s32)2426    ; GREEDY: $ax = COPY [[TRUNC1]](s16)2427    ; GREEDY: RET 0, implicit $ax2428    %1:_(s128) = COPY $xmm02429    %0:_(s64) = G_TRUNC %1(s128)2430    %3:_(s32) = G_FPTOSI %0(s64)2431    %2:_(s16) = G_TRUNC %3(s32)2432    $ax = COPY %2(s16)2433    RET 0, implicit $ax2434 2435...2436---2437name:            double_to_int322438alignment:       162439legalized:       true2440tracksRegLiveness: true2441registers:2442  - { id: 0, class: _ }2443  - { id: 1, class: _ }2444  - { id: 2, class: _ }2445body:             |2446  bb.1.entry:2447    liveins: $xmm02448 2449    ; FAST-LABEL: name: double_to_int322450    ; FAST: liveins: $xmm02451    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02452    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2453    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2454    ; FAST: $eax = COPY [[FPTOSI]](s32)2455    ; FAST: RET 0, implicit $eax2456    ; GREEDY-LABEL: name: double_to_int322457    ; GREEDY: liveins: $xmm02458    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02459    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2460    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s32) = G_FPTOSI [[TRUNC]](s64)2461    ; GREEDY: $eax = COPY [[FPTOSI]](s32)2462    ; GREEDY: RET 0, implicit $eax2463    %1:_(s128) = COPY $xmm02464    %0:_(s64) = G_TRUNC %1(s128)2465    %2:_(s32) = G_FPTOSI %0(s64)2466    $eax = COPY %2(s32)2467    RET 0, implicit $eax2468 2469...2470---2471name:            double_to_int642472alignment:       162473legalized:       true2474tracksRegLiveness: true2475registers:2476  - { id: 0, class: _ }2477  - { id: 1, class: _ }2478  - { id: 2, class: _ }2479body:             |2480  bb.1.entry:2481    liveins: $xmm02482 2483    ; FAST-LABEL: name: double_to_int642484    ; FAST: liveins: $xmm02485    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02486    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2487    ; FAST: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[TRUNC]](s64)2488    ; FAST: $rax = COPY [[FPTOSI]](s64)2489    ; FAST: RET 0, implicit $rax2490    ; GREEDY-LABEL: name: double_to_int642491    ; GREEDY: liveins: $xmm02492    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02493    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)2494    ; GREEDY: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[TRUNC]](s64)2495    ; GREEDY: $rax = COPY [[FPTOSI]](s64)2496    ; GREEDY: RET 0, implicit $rax2497    %1:_(s128) = COPY $xmm02498    %0:_(s64) = G_TRUNC %1(s128)2499    %2:_(s64) = G_FPTOSI %0(s64)2500    $rax = COPY %2(s64)2501    RET 0, implicit $rax2502 2503...2504---2505name:            fcmp_float_oeq2506alignment:       162507legalized:       true2508tracksRegLiveness: true2509registers:2510  - { id: 0, class: _ }2511  - { id: 1, class: _ }2512  - { id: 2, class: _ }2513  - { id: 3, class: _ }2514  - { id: 4, class: _ }2515  - { id: 5, class: _ }2516  - { id: 6, class: _ }2517body:             |2518  bb.1 (%ir-block.0):2519    liveins: $xmm0, $xmm12520 2521    ; FAST-LABEL: name: fcmp_float_oeq2522    ; FAST: liveins: $xmm0, $xmm12523    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02524    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2525    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12526    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2527    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s32), [[TRUNC1]]2528    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2529    ; FAST: $al = COPY [[COPY2]](s8)2530    ; FAST: RET 0, implicit $al2531    ; GREEDY-LABEL: name: fcmp_float_oeq2532    ; GREEDY: liveins: $xmm0, $xmm12533    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02534    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2535    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12536    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2537    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s32), [[TRUNC1]]2538    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2539    ; GREEDY: $al = COPY [[COPY2]](s8)2540    ; GREEDY: RET 0, implicit $al2541    %2:_(s128) = COPY $xmm02542    %0:_(s32) = G_TRUNC %2(s128)2543    %3:_(s128) = COPY $xmm12544    %1:_(s32) = G_TRUNC %3(s128)2545    %6:_(s8) = G_FCMP floatpred(oeq), %0(s32), %12546    %5:_(s8) = COPY %6(s8)2547    $al = COPY %5(s8)2548    RET 0, implicit $al2549 2550...2551---2552name:            fcmp_float_ogt2553alignment:       162554legalized:       true2555tracksRegLiveness: true2556registers:2557  - { id: 0, class: _ }2558  - { id: 1, class: _ }2559  - { id: 2, class: _ }2560  - { id: 3, class: _ }2561  - { id: 4, class: _ }2562  - { id: 5, class: _ }2563  - { id: 6, class: _ }2564body:             |2565  bb.1 (%ir-block.0):2566    liveins: $xmm0, $xmm12567 2568    ; FAST-LABEL: name: fcmp_float_ogt2569    ; FAST: liveins: $xmm0, $xmm12570    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02571    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2572    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12573    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2574    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s32), [[TRUNC1]]2575    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2576    ; FAST: $al = COPY [[COPY2]](s8)2577    ; FAST: RET 0, implicit $al2578    ; GREEDY-LABEL: name: fcmp_float_ogt2579    ; GREEDY: liveins: $xmm0, $xmm12580    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02581    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2582    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12583    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2584    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s32), [[TRUNC1]]2585    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2586    ; GREEDY: $al = COPY [[COPY2]](s8)2587    ; GREEDY: RET 0, implicit $al2588    %2:_(s128) = COPY $xmm02589    %0:_(s32) = G_TRUNC %2(s128)2590    %3:_(s128) = COPY $xmm12591    %1:_(s32) = G_TRUNC %3(s128)2592    %6:_(s8) = G_FCMP floatpred(ogt), %0(s32), %12593    %5:_(s8) = COPY %6(s8)2594    $al = COPY %5(s8)2595    RET 0, implicit $al2596 2597...2598---2599name:            fcmp_float_oge2600alignment:       162601legalized:       true2602tracksRegLiveness: true2603registers:2604  - { id: 0, class: _ }2605  - { id: 1, class: _ }2606  - { id: 2, class: _ }2607  - { id: 3, class: _ }2608  - { id: 4, class: _ }2609  - { id: 5, class: _ }2610  - { id: 6, class: _ }2611body:             |2612  bb.1 (%ir-block.0):2613    liveins: $xmm0, $xmm12614 2615    ; FAST-LABEL: name: fcmp_float_oge2616    ; FAST: liveins: $xmm0, $xmm12617    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02618    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2619    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12620    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2621    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oge), [[TRUNC]](s32), [[TRUNC1]]2622    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2623    ; FAST: $al = COPY [[COPY2]](s8)2624    ; FAST: RET 0, implicit $al2625    ; GREEDY-LABEL: name: fcmp_float_oge2626    ; GREEDY: liveins: $xmm0, $xmm12627    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02628    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2629    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12630    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2631    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oge), [[TRUNC]](s32), [[TRUNC1]]2632    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2633    ; GREEDY: $al = COPY [[COPY2]](s8)2634    ; GREEDY: RET 0, implicit $al2635    %2:_(s128) = COPY $xmm02636    %0:_(s32) = G_TRUNC %2(s128)2637    %3:_(s128) = COPY $xmm12638    %1:_(s32) = G_TRUNC %3(s128)2639    %6:_(s8) = G_FCMP floatpred(oge), %0(s32), %12640    %5:_(s8) = COPY %6(s8)2641    $al = COPY %5(s8)2642    RET 0, implicit $al2643 2644...2645---2646name:            fcmp_float_olt2647alignment:       162648legalized:       true2649tracksRegLiveness: true2650registers:2651  - { id: 0, class: _ }2652  - { id: 1, class: _ }2653  - { id: 2, class: _ }2654  - { id: 3, class: _ }2655  - { id: 4, class: _ }2656  - { id: 5, class: _ }2657  - { id: 6, class: _ }2658body:             |2659  bb.1 (%ir-block.0):2660    liveins: $xmm0, $xmm12661 2662    ; FAST-LABEL: name: fcmp_float_olt2663    ; FAST: liveins: $xmm0, $xmm12664    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02665    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2666    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12667    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2668    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(olt), [[TRUNC]](s32), [[TRUNC1]]2669    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2670    ; FAST: $al = COPY [[COPY2]](s8)2671    ; FAST: RET 0, implicit $al2672    ; GREEDY-LABEL: name: fcmp_float_olt2673    ; GREEDY: liveins: $xmm0, $xmm12674    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02675    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2676    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12677    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2678    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(olt), [[TRUNC]](s32), [[TRUNC1]]2679    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2680    ; GREEDY: $al = COPY [[COPY2]](s8)2681    ; GREEDY: RET 0, implicit $al2682    %2:_(s128) = COPY $xmm02683    %0:_(s32) = G_TRUNC %2(s128)2684    %3:_(s128) = COPY $xmm12685    %1:_(s32) = G_TRUNC %3(s128)2686    %6:_(s8) = G_FCMP floatpred(olt), %0(s32), %12687    %5:_(s8) = COPY %6(s8)2688    $al = COPY %5(s8)2689    RET 0, implicit $al2690 2691...2692---2693name:            fcmp_float_ole2694alignment:       162695legalized:       true2696tracksRegLiveness: true2697registers:2698  - { id: 0, class: _ }2699  - { id: 1, class: _ }2700  - { id: 2, class: _ }2701  - { id: 3, class: _ }2702  - { id: 4, class: _ }2703  - { id: 5, class: _ }2704  - { id: 6, class: _ }2705body:             |2706  bb.1 (%ir-block.0):2707    liveins: $xmm0, $xmm12708 2709    ; FAST-LABEL: name: fcmp_float_ole2710    ; FAST: liveins: $xmm0, $xmm12711    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02712    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2713    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12714    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2715    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ole), [[TRUNC]](s32), [[TRUNC1]]2716    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2717    ; FAST: $al = COPY [[COPY2]](s8)2718    ; FAST: RET 0, implicit $al2719    ; GREEDY-LABEL: name: fcmp_float_ole2720    ; GREEDY: liveins: $xmm0, $xmm12721    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02722    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2723    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12724    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2725    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ole), [[TRUNC]](s32), [[TRUNC1]]2726    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2727    ; GREEDY: $al = COPY [[COPY2]](s8)2728    ; GREEDY: RET 0, implicit $al2729    %2:_(s128) = COPY $xmm02730    %0:_(s32) = G_TRUNC %2(s128)2731    %3:_(s128) = COPY $xmm12732    %1:_(s32) = G_TRUNC %3(s128)2733    %6:_(s8) = G_FCMP floatpred(ole), %0(s32), %12734    %5:_(s8) = COPY %6(s8)2735    $al = COPY %5(s8)2736    RET 0, implicit $al2737 2738...2739---2740name:            fcmp_float_one2741alignment:       162742legalized:       true2743tracksRegLiveness: true2744registers:2745  - { id: 0, class: _ }2746  - { id: 1, class: _ }2747  - { id: 2, class: _ }2748  - { id: 3, class: _ }2749  - { id: 4, class: _ }2750  - { id: 5, class: _ }2751  - { id: 6, class: _ }2752body:             |2753  bb.1 (%ir-block.0):2754    liveins: $xmm0, $xmm12755 2756    ; FAST-LABEL: name: fcmp_float_one2757    ; FAST: liveins: $xmm0, $xmm12758    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02759    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2760    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12761    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2762    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(one), [[TRUNC]](s32), [[TRUNC1]]2763    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2764    ; FAST: $al = COPY [[COPY2]](s8)2765    ; FAST: RET 0, implicit $al2766    ; GREEDY-LABEL: name: fcmp_float_one2767    ; GREEDY: liveins: $xmm0, $xmm12768    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02769    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2770    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12771    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2772    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(one), [[TRUNC]](s32), [[TRUNC1]]2773    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2774    ; GREEDY: $al = COPY [[COPY2]](s8)2775    ; GREEDY: RET 0, implicit $al2776    %2:_(s128) = COPY $xmm02777    %0:_(s32) = G_TRUNC %2(s128)2778    %3:_(s128) = COPY $xmm12779    %1:_(s32) = G_TRUNC %3(s128)2780    %6:_(s8) = G_FCMP floatpred(one), %0(s32), %12781    %5:_(s8) = COPY %6(s8)2782    $al = COPY %5(s8)2783    RET 0, implicit $al2784 2785...2786---2787name:            fcmp_float_ord2788alignment:       162789legalized:       true2790tracksRegLiveness: true2791registers:2792  - { id: 0, class: _ }2793  - { id: 1, class: _ }2794  - { id: 2, class: _ }2795  - { id: 3, class: _ }2796  - { id: 4, class: _ }2797  - { id: 5, class: _ }2798  - { id: 6, class: _ }2799body:             |2800  bb.1 (%ir-block.0):2801    liveins: $xmm0, $xmm12802 2803    ; FAST-LABEL: name: fcmp_float_ord2804    ; FAST: liveins: $xmm0, $xmm12805    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02806    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2807    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12808    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2809    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ord), [[TRUNC]](s32), [[TRUNC1]]2810    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2811    ; FAST: $al = COPY [[COPY2]](s8)2812    ; FAST: RET 0, implicit $al2813    ; GREEDY-LABEL: name: fcmp_float_ord2814    ; GREEDY: liveins: $xmm0, $xmm12815    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02816    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2817    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12818    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2819    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ord), [[TRUNC]](s32), [[TRUNC1]]2820    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2821    ; GREEDY: $al = COPY [[COPY2]](s8)2822    ; GREEDY: RET 0, implicit $al2823    %2:_(s128) = COPY $xmm02824    %0:_(s32) = G_TRUNC %2(s128)2825    %3:_(s128) = COPY $xmm12826    %1:_(s32) = G_TRUNC %3(s128)2827    %6:_(s8) = G_FCMP floatpred(ord), %0(s32), %12828    %5:_(s8) = COPY %6(s8)2829    $al = COPY %5(s8)2830    RET 0, implicit $al2831 2832...2833---2834name:            fcmp_float_uno2835alignment:       162836legalized:       true2837tracksRegLiveness: true2838registers:2839  - { id: 0, class: _ }2840  - { id: 1, class: _ }2841  - { id: 2, class: _ }2842  - { id: 3, class: _ }2843  - { id: 4, class: _ }2844  - { id: 5, class: _ }2845  - { id: 6, class: _ }2846body:             |2847  bb.1 (%ir-block.0):2848    liveins: $xmm0, $xmm12849 2850    ; FAST-LABEL: name: fcmp_float_uno2851    ; FAST: liveins: $xmm0, $xmm12852    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02853    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2854    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12855    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2856    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uno), [[TRUNC]](s32), [[TRUNC1]]2857    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2858    ; FAST: $al = COPY [[COPY2]](s8)2859    ; FAST: RET 0, implicit $al2860    ; GREEDY-LABEL: name: fcmp_float_uno2861    ; GREEDY: liveins: $xmm0, $xmm12862    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02863    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2864    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12865    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2866    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uno), [[TRUNC]](s32), [[TRUNC1]]2867    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2868    ; GREEDY: $al = COPY [[COPY2]](s8)2869    ; GREEDY: RET 0, implicit $al2870    %2:_(s128) = COPY $xmm02871    %0:_(s32) = G_TRUNC %2(s128)2872    %3:_(s128) = COPY $xmm12873    %1:_(s32) = G_TRUNC %3(s128)2874    %6:_(s8) = G_FCMP floatpred(uno), %0(s32), %12875    %5:_(s8) = COPY %6(s8)2876    $al = COPY %5(s8)2877    RET 0, implicit $al2878 2879...2880---2881name:            fcmp_float_ueq2882alignment:       162883legalized:       true2884tracksRegLiveness: true2885registers:2886  - { id: 0, class: _ }2887  - { id: 1, class: _ }2888  - { id: 2, class: _ }2889  - { id: 3, class: _ }2890  - { id: 4, class: _ }2891  - { id: 5, class: _ }2892  - { id: 6, class: _ }2893body:             |2894  bb.1 (%ir-block.0):2895    liveins: $xmm0, $xmm12896 2897    ; FAST-LABEL: name: fcmp_float_ueq2898    ; FAST: liveins: $xmm0, $xmm12899    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02900    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2901    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12902    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2903    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s32), [[TRUNC1]]2904    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2905    ; FAST: $al = COPY [[COPY2]](s8)2906    ; FAST: RET 0, implicit $al2907    ; GREEDY-LABEL: name: fcmp_float_ueq2908    ; GREEDY: liveins: $xmm0, $xmm12909    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02910    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2911    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12912    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2913    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s32), [[TRUNC1]]2914    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2915    ; GREEDY: $al = COPY [[COPY2]](s8)2916    ; GREEDY: RET 0, implicit $al2917    %2:_(s128) = COPY $xmm02918    %0:_(s32) = G_TRUNC %2(s128)2919    %3:_(s128) = COPY $xmm12920    %1:_(s32) = G_TRUNC %3(s128)2921    %6:_(s8) = G_FCMP floatpred(ueq), %0(s32), %12922    %5:_(s8) = COPY %6(s8)2923    $al = COPY %5(s8)2924    RET 0, implicit $al2925 2926...2927---2928name:            fcmp_float_ugt2929alignment:       162930legalized:       true2931tracksRegLiveness: true2932registers:2933  - { id: 0, class: _ }2934  - { id: 1, class: _ }2935  - { id: 2, class: _ }2936  - { id: 3, class: _ }2937  - { id: 4, class: _ }2938  - { id: 5, class: _ }2939  - { id: 6, class: _ }2940body:             |2941  bb.1 (%ir-block.0):2942    liveins: $xmm0, $xmm12943 2944    ; FAST-LABEL: name: fcmp_float_ugt2945    ; FAST: liveins: $xmm0, $xmm12946    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02947    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2948    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12949    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2950    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s32), [[TRUNC1]]2951    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2952    ; FAST: $al = COPY [[COPY2]](s8)2953    ; FAST: RET 0, implicit $al2954    ; GREEDY-LABEL: name: fcmp_float_ugt2955    ; GREEDY: liveins: $xmm0, $xmm12956    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02957    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2958    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12959    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2960    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s32), [[TRUNC1]]2961    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2962    ; GREEDY: $al = COPY [[COPY2]](s8)2963    ; GREEDY: RET 0, implicit $al2964    %2:_(s128) = COPY $xmm02965    %0:_(s32) = G_TRUNC %2(s128)2966    %3:_(s128) = COPY $xmm12967    %1:_(s32) = G_TRUNC %3(s128)2968    %6:_(s8) = G_FCMP floatpred(ugt), %0(s32), %12969    %5:_(s8) = COPY %6(s8)2970    $al = COPY %5(s8)2971    RET 0, implicit $al2972 2973...2974---2975name:            fcmp_float_uge2976alignment:       162977legalized:       true2978tracksRegLiveness: true2979registers:2980  - { id: 0, class: _ }2981  - { id: 1, class: _ }2982  - { id: 2, class: _ }2983  - { id: 3, class: _ }2984  - { id: 4, class: _ }2985  - { id: 5, class: _ }2986  - { id: 6, class: _ }2987body:             |2988  bb.1 (%ir-block.0):2989    liveins: $xmm0, $xmm12990 2991    ; FAST-LABEL: name: fcmp_float_uge2992    ; FAST: liveins: $xmm0, $xmm12993    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm02994    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)2995    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm12996    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)2997    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uge), [[TRUNC]](s32), [[TRUNC1]]2998    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)2999    ; FAST: $al = COPY [[COPY2]](s8)3000    ; FAST: RET 0, implicit $al3001    ; GREEDY-LABEL: name: fcmp_float_uge3002    ; GREEDY: liveins: $xmm0, $xmm13003    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03004    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3005    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13006    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3007    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uge), [[TRUNC]](s32), [[TRUNC1]]3008    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3009    ; GREEDY: $al = COPY [[COPY2]](s8)3010    ; GREEDY: RET 0, implicit $al3011    %2:_(s128) = COPY $xmm03012    %0:_(s32) = G_TRUNC %2(s128)3013    %3:_(s128) = COPY $xmm13014    %1:_(s32) = G_TRUNC %3(s128)3015    %6:_(s8) = G_FCMP floatpred(uge), %0(s32), %13016    %5:_(s8) = COPY %6(s8)3017    $al = COPY %5(s8)3018    RET 0, implicit $al3019 3020...3021---3022name:            fcmp_float_ult3023alignment:       163024legalized:       true3025tracksRegLiveness: true3026registers:3027  - { id: 0, class: _ }3028  - { id: 1, class: _ }3029  - { id: 2, class: _ }3030  - { id: 3, class: _ }3031  - { id: 4, class: _ }3032  - { id: 5, class: _ }3033  - { id: 6, class: _ }3034body:             |3035  bb.1 (%ir-block.0):3036    liveins: $xmm0, $xmm13037 3038    ; FAST-LABEL: name: fcmp_float_ult3039    ; FAST: liveins: $xmm0, $xmm13040    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03041    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3042    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13043    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3044    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ult), [[TRUNC]](s32), [[TRUNC1]]3045    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3046    ; FAST: $al = COPY [[COPY2]](s8)3047    ; FAST: RET 0, implicit $al3048    ; GREEDY-LABEL: name: fcmp_float_ult3049    ; GREEDY: liveins: $xmm0, $xmm13050    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03051    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3052    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13053    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3054    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ult), [[TRUNC]](s32), [[TRUNC1]]3055    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3056    ; GREEDY: $al = COPY [[COPY2]](s8)3057    ; GREEDY: RET 0, implicit $al3058    %2:_(s128) = COPY $xmm03059    %0:_(s32) = G_TRUNC %2(s128)3060    %3:_(s128) = COPY $xmm13061    %1:_(s32) = G_TRUNC %3(s128)3062    %6:_(s8) = G_FCMP floatpred(ult), %0(s32), %13063    %5:_(s8) = COPY %6(s8)3064    $al = COPY %5(s8)3065    RET 0, implicit $al3066 3067...3068---3069name:            fcmp_float_ule3070alignment:       163071legalized:       true3072tracksRegLiveness: true3073registers:3074  - { id: 0, class: _ }3075  - { id: 1, class: _ }3076  - { id: 2, class: _ }3077  - { id: 3, class: _ }3078  - { id: 4, class: _ }3079  - { id: 5, class: _ }3080  - { id: 6, class: _ }3081body:             |3082  bb.1 (%ir-block.0):3083    liveins: $xmm0, $xmm13084 3085    ; FAST-LABEL: name: fcmp_float_ule3086    ; FAST: liveins: $xmm0, $xmm13087    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03088    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3089    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13090    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3091    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ule), [[TRUNC]](s32), [[TRUNC1]]3092    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3093    ; FAST: $al = COPY [[COPY2]](s8)3094    ; FAST: RET 0, implicit $al3095    ; GREEDY-LABEL: name: fcmp_float_ule3096    ; GREEDY: liveins: $xmm0, $xmm13097    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03098    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3099    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13100    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3101    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ule), [[TRUNC]](s32), [[TRUNC1]]3102    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3103    ; GREEDY: $al = COPY [[COPY2]](s8)3104    ; GREEDY: RET 0, implicit $al3105    %2:_(s128) = COPY $xmm03106    %0:_(s32) = G_TRUNC %2(s128)3107    %3:_(s128) = COPY $xmm13108    %1:_(s32) = G_TRUNC %3(s128)3109    %6:_(s8) = G_FCMP floatpred(ule), %0(s32), %13110    %5:_(s8) = COPY %6(s8)3111    $al = COPY %5(s8)3112    RET 0, implicit $al3113 3114...3115---3116name:            fcmp_float_une3117alignment:       163118legalized:       true3119tracksRegLiveness: true3120registers:3121  - { id: 0, class: _ }3122  - { id: 1, class: _ }3123  - { id: 2, class: _ }3124  - { id: 3, class: _ }3125  - { id: 4, class: _ }3126  - { id: 5, class: _ }3127  - { id: 6, class: _ }3128body:             |3129  bb.1 (%ir-block.0):3130    liveins: $xmm0, $xmm13131 3132    ; FAST-LABEL: name: fcmp_float_une3133    ; FAST: liveins: $xmm0, $xmm13134    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03135    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3136    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13137    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3138    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(une), [[TRUNC]](s32), [[TRUNC1]]3139    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3140    ; FAST: $al = COPY [[COPY2]](s8)3141    ; FAST: RET 0, implicit $al3142    ; GREEDY-LABEL: name: fcmp_float_une3143    ; GREEDY: liveins: $xmm0, $xmm13144    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03145    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY]](s128)3146    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13147    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s32) = G_TRUNC [[COPY1]](s128)3148    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(une), [[TRUNC]](s32), [[TRUNC1]]3149    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3150    ; GREEDY: $al = COPY [[COPY2]](s8)3151    ; GREEDY: RET 0, implicit $al3152    %2:_(s128) = COPY $xmm03153    %0:_(s32) = G_TRUNC %2(s128)3154    %3:_(s128) = COPY $xmm13155    %1:_(s32) = G_TRUNC %3(s128)3156    %6:_(s8) = G_FCMP floatpred(une), %0(s32), %13157    %5:_(s8) = COPY %6(s8)3158    $al = COPY %5(s8)3159    RET 0, implicit $al3160 3161...3162---3163name:            fcmp_double_oeq3164alignment:       163165legalized:       true3166tracksRegLiveness: true3167registers:3168  - { id: 0, class: _ }3169  - { id: 1, class: _ }3170  - { id: 2, class: _ }3171  - { id: 3, class: _ }3172  - { id: 4, class: _ }3173  - { id: 5, class: _ }3174  - { id: 6, class: _ }3175body:             |3176  bb.1 (%ir-block.0):3177    liveins: $xmm0, $xmm13178 3179    ; FAST-LABEL: name: fcmp_double_oeq3180    ; FAST: liveins: $xmm0, $xmm13181    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03182    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3183    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13184    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3185    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s64), [[TRUNC1]]3186    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3187    ; FAST: $al = COPY [[COPY2]](s8)3188    ; FAST: RET 0, implicit $al3189    ; GREEDY-LABEL: name: fcmp_double_oeq3190    ; GREEDY: liveins: $xmm0, $xmm13191    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03192    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3193    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13194    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3195    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s64), [[TRUNC1]]3196    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3197    ; GREEDY: $al = COPY [[COPY2]](s8)3198    ; GREEDY: RET 0, implicit $al3199    %2:_(s128) = COPY $xmm03200    %0:_(s64) = G_TRUNC %2(s128)3201    %3:_(s128) = COPY $xmm13202    %1:_(s64) = G_TRUNC %3(s128)3203    %6:_(s8) = G_FCMP floatpred(oeq), %0(s64), %13204    %5:_(s8) = COPY %6(s8)3205    $al = COPY %5(s8)3206    RET 0, implicit $al3207 3208...3209---3210name:            fcmp_double_ogt3211alignment:       163212legalized:       true3213tracksRegLiveness: true3214registers:3215  - { id: 0, class: _ }3216  - { id: 1, class: _ }3217  - { id: 2, class: _ }3218  - { id: 3, class: _ }3219  - { id: 4, class: _ }3220  - { id: 5, class: _ }3221  - { id: 6, class: _ }3222body:             |3223  bb.1 (%ir-block.0):3224    liveins: $xmm0, $xmm13225 3226    ; FAST-LABEL: name: fcmp_double_ogt3227    ; FAST: liveins: $xmm0, $xmm13228    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03229    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3230    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13231    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3232    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s64), [[TRUNC1]]3233    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3234    ; FAST: $al = COPY [[COPY2]](s8)3235    ; FAST: RET 0, implicit $al3236    ; GREEDY-LABEL: name: fcmp_double_ogt3237    ; GREEDY: liveins: $xmm0, $xmm13238    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03239    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3240    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13241    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3242    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s64), [[TRUNC1]]3243    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3244    ; GREEDY: $al = COPY [[COPY2]](s8)3245    ; GREEDY: RET 0, implicit $al3246    %2:_(s128) = COPY $xmm03247    %0:_(s64) = G_TRUNC %2(s128)3248    %3:_(s128) = COPY $xmm13249    %1:_(s64) = G_TRUNC %3(s128)3250    %6:_(s8) = G_FCMP floatpred(ogt), %0(s64), %13251    %5:_(s8) = COPY %6(s8)3252    $al = COPY %5(s8)3253    RET 0, implicit $al3254 3255...3256---3257name:            fcmp_double_oge3258alignment:       163259legalized:       true3260tracksRegLiveness: true3261registers:3262  - { id: 0, class: _ }3263  - { id: 1, class: _ }3264  - { id: 2, class: _ }3265  - { id: 3, class: _ }3266  - { id: 4, class: _ }3267  - { id: 5, class: _ }3268  - { id: 6, class: _ }3269body:             |3270  bb.1 (%ir-block.0):3271    liveins: $xmm0, $xmm13272 3273    ; FAST-LABEL: name: fcmp_double_oge3274    ; FAST: liveins: $xmm0, $xmm13275    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03276    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3277    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13278    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3279    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oge), [[TRUNC]](s64), [[TRUNC1]]3280    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3281    ; FAST: $al = COPY [[COPY2]](s8)3282    ; FAST: RET 0, implicit $al3283    ; GREEDY-LABEL: name: fcmp_double_oge3284    ; GREEDY: liveins: $xmm0, $xmm13285    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03286    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3287    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13288    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3289    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(oge), [[TRUNC]](s64), [[TRUNC1]]3290    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3291    ; GREEDY: $al = COPY [[COPY2]](s8)3292    ; GREEDY: RET 0, implicit $al3293    %2:_(s128) = COPY $xmm03294    %0:_(s64) = G_TRUNC %2(s128)3295    %3:_(s128) = COPY $xmm13296    %1:_(s64) = G_TRUNC %3(s128)3297    %6:_(s8) = G_FCMP floatpred(oge), %0(s64), %13298    %5:_(s8) = COPY %6(s8)3299    $al = COPY %5(s8)3300    RET 0, implicit $al3301 3302...3303---3304name:            fcmp_double_olt3305alignment:       163306legalized:       true3307tracksRegLiveness: true3308registers:3309  - { id: 0, class: _ }3310  - { id: 1, class: _ }3311  - { id: 2, class: _ }3312  - { id: 3, class: _ }3313  - { id: 4, class: _ }3314  - { id: 5, class: _ }3315  - { id: 6, class: _ }3316body:             |3317  bb.1 (%ir-block.0):3318    liveins: $xmm0, $xmm13319 3320    ; FAST-LABEL: name: fcmp_double_olt3321    ; FAST: liveins: $xmm0, $xmm13322    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03323    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3324    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13325    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3326    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(olt), [[TRUNC]](s64), [[TRUNC1]]3327    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3328    ; FAST: $al = COPY [[COPY2]](s8)3329    ; FAST: RET 0, implicit $al3330    ; GREEDY-LABEL: name: fcmp_double_olt3331    ; GREEDY: liveins: $xmm0, $xmm13332    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03333    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3334    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13335    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3336    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(olt), [[TRUNC]](s64), [[TRUNC1]]3337    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3338    ; GREEDY: $al = COPY [[COPY2]](s8)3339    ; GREEDY: RET 0, implicit $al3340    %2:_(s128) = COPY $xmm03341    %0:_(s64) = G_TRUNC %2(s128)3342    %3:_(s128) = COPY $xmm13343    %1:_(s64) = G_TRUNC %3(s128)3344    %6:_(s8) = G_FCMP floatpred(olt), %0(s64), %13345    %5:_(s8) = COPY %6(s8)3346    $al = COPY %5(s8)3347    RET 0, implicit $al3348 3349...3350---3351name:            fcmp_double_ole3352alignment:       163353legalized:       true3354tracksRegLiveness: true3355registers:3356  - { id: 0, class: _ }3357  - { id: 1, class: _ }3358  - { id: 2, class: _ }3359  - { id: 3, class: _ }3360  - { id: 4, class: _ }3361  - { id: 5, class: _ }3362  - { id: 6, class: _ }3363body:             |3364  bb.1 (%ir-block.0):3365    liveins: $xmm0, $xmm13366 3367    ; FAST-LABEL: name: fcmp_double_ole3368    ; FAST: liveins: $xmm0, $xmm13369    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03370    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3371    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13372    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3373    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ole), [[TRUNC]](s64), [[TRUNC1]]3374    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3375    ; FAST: $al = COPY [[COPY2]](s8)3376    ; FAST: RET 0, implicit $al3377    ; GREEDY-LABEL: name: fcmp_double_ole3378    ; GREEDY: liveins: $xmm0, $xmm13379    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03380    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3381    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13382    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3383    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ole), [[TRUNC]](s64), [[TRUNC1]]3384    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3385    ; GREEDY: $al = COPY [[COPY2]](s8)3386    ; GREEDY: RET 0, implicit $al3387    %2:_(s128) = COPY $xmm03388    %0:_(s64) = G_TRUNC %2(s128)3389    %3:_(s128) = COPY $xmm13390    %1:_(s64) = G_TRUNC %3(s128)3391    %6:_(s8) = G_FCMP floatpred(ole), %0(s64), %13392    %5:_(s8) = COPY %6(s8)3393    $al = COPY %5(s8)3394    RET 0, implicit $al3395 3396...3397---3398name:            fcmp_double_one3399alignment:       163400legalized:       true3401tracksRegLiveness: true3402registers:3403  - { id: 0, class: _ }3404  - { id: 1, class: _ }3405  - { id: 2, class: _ }3406  - { id: 3, class: _ }3407  - { id: 4, class: _ }3408  - { id: 5, class: _ }3409  - { id: 6, class: _ }3410body:             |3411  bb.1 (%ir-block.0):3412    liveins: $xmm0, $xmm13413 3414    ; FAST-LABEL: name: fcmp_double_one3415    ; FAST: liveins: $xmm0, $xmm13416    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03417    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3418    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13419    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3420    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(one), [[TRUNC]](s64), [[TRUNC1]]3421    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3422    ; FAST: $al = COPY [[COPY2]](s8)3423    ; FAST: RET 0, implicit $al3424    ; GREEDY-LABEL: name: fcmp_double_one3425    ; GREEDY: liveins: $xmm0, $xmm13426    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03427    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3428    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13429    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3430    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(one), [[TRUNC]](s64), [[TRUNC1]]3431    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3432    ; GREEDY: $al = COPY [[COPY2]](s8)3433    ; GREEDY: RET 0, implicit $al3434    %2:_(s128) = COPY $xmm03435    %0:_(s64) = G_TRUNC %2(s128)3436    %3:_(s128) = COPY $xmm13437    %1:_(s64) = G_TRUNC %3(s128)3438    %6:_(s8) = G_FCMP floatpred(one), %0(s64), %13439    %5:_(s8) = COPY %6(s8)3440    $al = COPY %5(s8)3441    RET 0, implicit $al3442 3443...3444---3445name:            fcmp_double_ord3446alignment:       163447legalized:       true3448tracksRegLiveness: true3449registers:3450  - { id: 0, class: _ }3451  - { id: 1, class: _ }3452  - { id: 2, class: _ }3453  - { id: 3, class: _ }3454  - { id: 4, class: _ }3455  - { id: 5, class: _ }3456  - { id: 6, class: _ }3457body:             |3458  bb.1 (%ir-block.0):3459    liveins: $xmm0, $xmm13460 3461    ; FAST-LABEL: name: fcmp_double_ord3462    ; FAST: liveins: $xmm0, $xmm13463    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03464    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3465    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13466    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3467    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ord), [[TRUNC]](s64), [[TRUNC1]]3468    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3469    ; FAST: $al = COPY [[COPY2]](s8)3470    ; FAST: RET 0, implicit $al3471    ; GREEDY-LABEL: name: fcmp_double_ord3472    ; GREEDY: liveins: $xmm0, $xmm13473    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03474    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3475    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13476    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3477    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ord), [[TRUNC]](s64), [[TRUNC1]]3478    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3479    ; GREEDY: $al = COPY [[COPY2]](s8)3480    ; GREEDY: RET 0, implicit $al3481    %2:_(s128) = COPY $xmm03482    %0:_(s64) = G_TRUNC %2(s128)3483    %3:_(s128) = COPY $xmm13484    %1:_(s64) = G_TRUNC %3(s128)3485    %6:_(s8) = G_FCMP floatpred(ord), %0(s64), %13486    %5:_(s8) = COPY %6(s8)3487    $al = COPY %5(s8)3488    RET 0, implicit $al3489 3490...3491---3492name:            fcmp_double_uno3493alignment:       163494legalized:       true3495tracksRegLiveness: true3496registers:3497  - { id: 0, class: _ }3498  - { id: 1, class: _ }3499  - { id: 2, class: _ }3500  - { id: 3, class: _ }3501  - { id: 4, class: _ }3502  - { id: 5, class: _ }3503  - { id: 6, class: _ }3504body:             |3505  bb.1 (%ir-block.0):3506    liveins: $xmm0, $xmm13507 3508    ; FAST-LABEL: name: fcmp_double_uno3509    ; FAST: liveins: $xmm0, $xmm13510    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03511    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3512    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13513    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3514    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uno), [[TRUNC]](s64), [[TRUNC1]]3515    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3516    ; FAST: $al = COPY [[COPY2]](s8)3517    ; FAST: RET 0, implicit $al3518    ; GREEDY-LABEL: name: fcmp_double_uno3519    ; GREEDY: liveins: $xmm0, $xmm13520    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03521    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3522    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13523    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3524    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uno), [[TRUNC]](s64), [[TRUNC1]]3525    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3526    ; GREEDY: $al = COPY [[COPY2]](s8)3527    ; GREEDY: RET 0, implicit $al3528    %2:_(s128) = COPY $xmm03529    %0:_(s64) = G_TRUNC %2(s128)3530    %3:_(s128) = COPY $xmm13531    %1:_(s64) = G_TRUNC %3(s128)3532    %6:_(s8) = G_FCMP floatpred(uno), %0(s64), %13533    %5:_(s8) = COPY %6(s8)3534    $al = COPY %5(s8)3535    RET 0, implicit $al3536 3537...3538---3539name:            fcmp_double_ueq3540alignment:       163541legalized:       true3542tracksRegLiveness: true3543registers:3544  - { id: 0, class: _ }3545  - { id: 1, class: _ }3546  - { id: 2, class: _ }3547  - { id: 3, class: _ }3548  - { id: 4, class: _ }3549  - { id: 5, class: _ }3550  - { id: 6, class: _ }3551body:             |3552  bb.1 (%ir-block.0):3553    liveins: $xmm0, $xmm13554 3555    ; FAST-LABEL: name: fcmp_double_ueq3556    ; FAST: liveins: $xmm0, $xmm13557    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03558    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3559    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13560    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3561    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s64), [[TRUNC1]]3562    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3563    ; FAST: $al = COPY [[COPY2]](s8)3564    ; FAST: RET 0, implicit $al3565    ; GREEDY-LABEL: name: fcmp_double_ueq3566    ; GREEDY: liveins: $xmm0, $xmm13567    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03568    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3569    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13570    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3571    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s64), [[TRUNC1]]3572    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3573    ; GREEDY: $al = COPY [[COPY2]](s8)3574    ; GREEDY: RET 0, implicit $al3575    %2:_(s128) = COPY $xmm03576    %0:_(s64) = G_TRUNC %2(s128)3577    %3:_(s128) = COPY $xmm13578    %1:_(s64) = G_TRUNC %3(s128)3579    %6:_(s8) = G_FCMP floatpred(ueq), %0(s64), %13580    %5:_(s8) = COPY %6(s8)3581    $al = COPY %5(s8)3582    RET 0, implicit $al3583 3584...3585---3586name:            fcmp_double_ugt3587alignment:       163588legalized:       true3589tracksRegLiveness: true3590registers:3591  - { id: 0, class: _ }3592  - { id: 1, class: _ }3593  - { id: 2, class: _ }3594  - { id: 3, class: _ }3595  - { id: 4, class: _ }3596  - { id: 5, class: _ }3597  - { id: 6, class: _ }3598body:             |3599  bb.1 (%ir-block.0):3600    liveins: $xmm0, $xmm13601 3602    ; FAST-LABEL: name: fcmp_double_ugt3603    ; FAST: liveins: $xmm0, $xmm13604    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03605    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3606    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13607    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3608    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s64), [[TRUNC1]]3609    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3610    ; FAST: $al = COPY [[COPY2]](s8)3611    ; FAST: RET 0, implicit $al3612    ; GREEDY-LABEL: name: fcmp_double_ugt3613    ; GREEDY: liveins: $xmm0, $xmm13614    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03615    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3616    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13617    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3618    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s64), [[TRUNC1]]3619    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3620    ; GREEDY: $al = COPY [[COPY2]](s8)3621    ; GREEDY: RET 0, implicit $al3622    %2:_(s128) = COPY $xmm03623    %0:_(s64) = G_TRUNC %2(s128)3624    %3:_(s128) = COPY $xmm13625    %1:_(s64) = G_TRUNC %3(s128)3626    %6:_(s8) = G_FCMP floatpred(ugt), %0(s64), %13627    %5:_(s8) = COPY %6(s8)3628    $al = COPY %5(s8)3629    RET 0, implicit $al3630 3631...3632---3633name:            fcmp_double_uge3634alignment:       163635legalized:       true3636tracksRegLiveness: true3637registers:3638  - { id: 0, class: _ }3639  - { id: 1, class: _ }3640  - { id: 2, class: _ }3641  - { id: 3, class: _ }3642  - { id: 4, class: _ }3643  - { id: 5, class: _ }3644  - { id: 6, class: _ }3645body:             |3646  bb.1 (%ir-block.0):3647    liveins: $xmm0, $xmm13648 3649    ; FAST-LABEL: name: fcmp_double_uge3650    ; FAST: liveins: $xmm0, $xmm13651    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03652    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3653    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13654    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3655    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uge), [[TRUNC]](s64), [[TRUNC1]]3656    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3657    ; FAST: $al = COPY [[COPY2]](s8)3658    ; FAST: RET 0, implicit $al3659    ; GREEDY-LABEL: name: fcmp_double_uge3660    ; GREEDY: liveins: $xmm0, $xmm13661    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03662    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3663    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13664    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3665    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(uge), [[TRUNC]](s64), [[TRUNC1]]3666    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3667    ; GREEDY: $al = COPY [[COPY2]](s8)3668    ; GREEDY: RET 0, implicit $al3669    %2:_(s128) = COPY $xmm03670    %0:_(s64) = G_TRUNC %2(s128)3671    %3:_(s128) = COPY $xmm13672    %1:_(s64) = G_TRUNC %3(s128)3673    %6:_(s8) = G_FCMP floatpred(uge), %0(s64), %13674    %5:_(s8) = COPY %6(s8)3675    $al = COPY %5(s8)3676    RET 0, implicit $al3677 3678...3679---3680name:            fcmp_double_ult3681alignment:       163682legalized:       true3683tracksRegLiveness: true3684registers:3685  - { id: 0, class: _ }3686  - { id: 1, class: _ }3687  - { id: 2, class: _ }3688  - { id: 3, class: _ }3689  - { id: 4, class: _ }3690  - { id: 5, class: _ }3691  - { id: 6, class: _ }3692body:             |3693  bb.1 (%ir-block.0):3694    liveins: $xmm0, $xmm13695 3696    ; FAST-LABEL: name: fcmp_double_ult3697    ; FAST: liveins: $xmm0, $xmm13698    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03699    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3700    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13701    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3702    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ult), [[TRUNC]](s64), [[TRUNC1]]3703    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3704    ; FAST: $al = COPY [[COPY2]](s8)3705    ; FAST: RET 0, implicit $al3706    ; GREEDY-LABEL: name: fcmp_double_ult3707    ; GREEDY: liveins: $xmm0, $xmm13708    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03709    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3710    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13711    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3712    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ult), [[TRUNC]](s64), [[TRUNC1]]3713    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3714    ; GREEDY: $al = COPY [[COPY2]](s8)3715    ; GREEDY: RET 0, implicit $al3716    %2:_(s128) = COPY $xmm03717    %0:_(s64) = G_TRUNC %2(s128)3718    %3:_(s128) = COPY $xmm13719    %1:_(s64) = G_TRUNC %3(s128)3720    %6:_(s8) = G_FCMP floatpred(ult), %0(s64), %13721    %5:_(s8) = COPY %6(s8)3722    $al = COPY %5(s8)3723    RET 0, implicit $al3724 3725...3726---3727name:            fcmp_double_ule3728alignment:       163729legalized:       true3730tracksRegLiveness: true3731registers:3732  - { id: 0, class: _ }3733  - { id: 1, class: _ }3734  - { id: 2, class: _ }3735  - { id: 3, class: _ }3736  - { id: 4, class: _ }3737  - { id: 5, class: _ }3738  - { id: 6, class: _ }3739body:             |3740  bb.1 (%ir-block.0):3741    liveins: $xmm0, $xmm13742 3743    ; FAST-LABEL: name: fcmp_double_ule3744    ; FAST: liveins: $xmm0, $xmm13745    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03746    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3747    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13748    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3749    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ule), [[TRUNC]](s64), [[TRUNC1]]3750    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3751    ; FAST: $al = COPY [[COPY2]](s8)3752    ; FAST: RET 0, implicit $al3753    ; GREEDY-LABEL: name: fcmp_double_ule3754    ; GREEDY: liveins: $xmm0, $xmm13755    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03756    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3757    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13758    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3759    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(ule), [[TRUNC]](s64), [[TRUNC1]]3760    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3761    ; GREEDY: $al = COPY [[COPY2]](s8)3762    ; GREEDY: RET 0, implicit $al3763    %2:_(s128) = COPY $xmm03764    %0:_(s64) = G_TRUNC %2(s128)3765    %3:_(s128) = COPY $xmm13766    %1:_(s64) = G_TRUNC %3(s128)3767    %6:_(s8) = G_FCMP floatpred(ule), %0(s64), %13768    %5:_(s8) = COPY %6(s8)3769    $al = COPY %5(s8)3770    RET 0, implicit $al3771 3772...3773---3774name:            fcmp_double_une3775alignment:       163776legalized:       true3777tracksRegLiveness: true3778registers:3779  - { id: 0, class: _ }3780  - { id: 1, class: _ }3781  - { id: 2, class: _ }3782  - { id: 3, class: _ }3783  - { id: 4, class: _ }3784  - { id: 5, class: _ }3785  - { id: 6, class: _ }3786body:             |3787  bb.1 (%ir-block.0):3788    liveins: $xmm0, $xmm13789 3790    ; FAST-LABEL: name: fcmp_double_une3791    ; FAST: liveins: $xmm0, $xmm13792    ; FAST: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03793    ; FAST: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3794    ; FAST: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13795    ; FAST: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3796    ; FAST: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(une), [[TRUNC]](s64), [[TRUNC1]]3797    ; FAST: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3798    ; FAST: $al = COPY [[COPY2]](s8)3799    ; FAST: RET 0, implicit $al3800    ; GREEDY-LABEL: name: fcmp_double_une3801    ; GREEDY: liveins: $xmm0, $xmm13802    ; GREEDY: [[COPY:%[0-9]+]]:vecr(s128) = COPY $xmm03803    ; GREEDY: [[TRUNC:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY]](s128)3804    ; GREEDY: [[COPY1:%[0-9]+]]:vecr(s128) = COPY $xmm13805    ; GREEDY: [[TRUNC1:%[0-9]+]]:vecr(s64) = G_TRUNC [[COPY1]](s128)3806    ; GREEDY: [[FCMP:%[0-9]+]]:gpr(s8) = G_FCMP floatpred(une), [[TRUNC]](s64), [[TRUNC1]]3807    ; GREEDY: [[COPY2:%[0-9]+]]:gpr(s8) = COPY [[FCMP]](s8)3808    ; GREEDY: $al = COPY [[COPY2]](s8)3809    ; GREEDY: RET 0, implicit $al3810    %2:_(s128) = COPY $xmm03811    %0:_(s64) = G_TRUNC %2(s128)3812    %3:_(s128) = COPY $xmm13813    %1:_(s64) = G_TRUNC %3(s128)3814    %6:_(s8) = G_FCMP floatpred(une), %0(s64), %13815    %5:_(s8) = COPY %6(s8)3816    $al = COPY %5(s8)3817    RET 0, implicit $al3818 3819...3820