brintos

brintos / llvm-project-archived public Read only

0
0
Text · 46.6 KiB · d3e914b Raw
1339 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple arm-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s3--- |4  define void @test_icmp_eq_s32() { ret void }5  define void @test_icmp_ne_s32() { ret void }6  define void @test_icmp_ugt_s32() { ret void }7  define void @test_icmp_uge_s32() { ret void }8  define void @test_icmp_ult_s32() { ret void }9  define void @test_icmp_ule_s32() { ret void }10  define void @test_icmp_sgt_s32() { ret void }11  define void @test_icmp_sge_s32() { ret void }12  define void @test_icmp_slt_s32() { ret void }13  define void @test_icmp_sle_s32() { ret void }14 15  define void @test_fcmp_true_s32() #0 { ret void }16  define void @test_fcmp_false_s32() #0 { ret void }17 18  define void @test_fcmp_oeq_s32() #0 { ret void }19  define void @test_fcmp_ogt_s32() #0 { ret void }20  define void @test_fcmp_oge_s32() #0 { ret void }21  define void @test_fcmp_olt_s32() #0 { ret void }22  define void @test_fcmp_ole_s32() #0 { ret void }23  define void @test_fcmp_ord_s32() #0 { ret void }24  define void @test_fcmp_ugt_s32() #0 { ret void }25  define void @test_fcmp_uge_s32() #0 { ret void }26  define void @test_fcmp_ult_s32() #0 { ret void }27  define void @test_fcmp_ule_s32() #0 { ret void }28  define void @test_fcmp_une_s32() #0 { ret void }29  define void @test_fcmp_uno_s32() #0 { ret void }30 31  define void @test_fcmp_one_s32() #0 { ret void }32  define void @test_fcmp_ueq_s32() #0 { ret void }33 34  define void @test_fcmp_true_s64() #0 { ret void }35  define void @test_fcmp_false_s64() #0 { ret void }36 37  define void @test_fcmp_oeq_s64() #0 { ret void }38  define void @test_fcmp_ogt_s64() #0 { ret void }39  define void @test_fcmp_oge_s64() #0 { ret void }40  define void @test_fcmp_olt_s64() #0 { ret void }41  define void @test_fcmp_ole_s64() #0 { ret void }42  define void @test_fcmp_ord_s64() #0 { ret void }43  define void @test_fcmp_ugt_s64() #0 { ret void }44  define void @test_fcmp_uge_s64() #0 { ret void }45  define void @test_fcmp_ult_s64() #0 { ret void }46  define void @test_fcmp_ule_s64() #0 { ret void }47  define void @test_fcmp_une_s64() #0 { ret void }48  define void @test_fcmp_uno_s64() #0 { ret void }49 50  define void @test_fcmp_one_s64() #0 { ret void }51  define void @test_fcmp_ueq_s64() #0 { ret void }52 53  attributes #0 = { "target-features"="+vfp2" }54...55---56name:            test_icmp_eq_s3257legalized:       true58regBankSelected: true59selected:        false60registers:61  - { id: 0, class: gprb }62  - { id: 1, class: gprb }63  - { id: 2, class: gprb }64  - { id: 3, class: gprb }65body:             |66  bb.0:67    liveins: $r0, $r168 69    ; CHECK-LABEL: name: test_icmp_eq_s3270    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r071    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r172    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg73    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr74    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0 /* CC::eq */, $cpsr75    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg76    ; CHECK: $r0 = COPY [[ANDri]]77    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r078    %0(s32) = COPY $r079    %1(s32) = COPY $r180    %2(s1) = G_ICMP intpred(eq),  %0(s32), %181    %3(s32) = G_ZEXT %2(s1)82    $r0 = COPY %3(s32)83    BX_RET 14, $noreg, implicit $r084...85---86name:            test_icmp_ne_s3287legalized:       true88regBankSelected: true89selected:        false90registers:91  - { id: 0, class: gprb }92  - { id: 1, class: gprb }93  - { id: 2, class: gprb }94  - { id: 3, class: gprb }95body:             |96  bb.0:97    liveins: $r0, $r198 99    ; CHECK-LABEL: name: test_icmp_ne_s32100    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0101    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1102    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg103    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr104    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1 /* CC::ne */, $cpsr105    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg106    ; CHECK: $r0 = COPY [[ANDri]]107    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0108    %0(s32) = COPY $r0109    %1(s32) = COPY $r1110    %2(s1) = G_ICMP intpred(ne),  %0(s32), %1111    %3(s32) = G_ZEXT %2(s1)112    $r0 = COPY %3(s32)113    BX_RET 14, $noreg, implicit $r0114...115---116name:            test_icmp_ugt_s32117legalized:       true118regBankSelected: true119selected:        false120registers:121  - { id: 0, class: gprb }122  - { id: 1, class: gprb }123  - { id: 2, class: gprb }124  - { id: 3, class: gprb }125body:             |126  bb.0:127    liveins: $r0, $r1128 129    ; CHECK-LABEL: name: test_icmp_ugt_s32130    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0131    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1132    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg133    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr134    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8 /* CC::hi */, $cpsr135    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg136    ; CHECK: $r0 = COPY [[ANDri]]137    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0138    %0(s32) = COPY $r0139    %1(s32) = COPY $r1140    %2(s1) = G_ICMP intpred(ugt),  %0(s32), %1141    %3(s32) = G_ZEXT %2(s1)142    $r0 = COPY %3(s32)143    BX_RET 14, $noreg, implicit $r0144...145---146name:            test_icmp_uge_s32147legalized:       true148regBankSelected: true149selected:        false150registers:151  - { id: 0, class: gprb }152  - { id: 1, class: gprb }153  - { id: 2, class: gprb }154  - { id: 3, class: gprb }155body:             |156  bb.0:157    liveins: $r0, $r1158 159    ; CHECK-LABEL: name: test_icmp_uge_s32160    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0161    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1162    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg163    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr164    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 2 /* CC::hs */, $cpsr165    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg166    ; CHECK: $r0 = COPY [[ANDri]]167    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0168    %0(s32) = COPY $r0169    %1(s32) = COPY $r1170    %2(s1) = G_ICMP intpred(uge),  %0(s32), %1171    %3(s32) = G_ZEXT %2(s1)172    $r0 = COPY %3(s32)173    BX_RET 14, $noreg, implicit $r0174...175---176name:            test_icmp_ult_s32177legalized:       true178regBankSelected: true179selected:        false180registers:181  - { id: 0, class: gprb }182  - { id: 1, class: gprb }183  - { id: 2, class: gprb }184  - { id: 3, class: gprb }185body:             |186  bb.0:187    liveins: $r0, $r1188 189    ; CHECK-LABEL: name: test_icmp_ult_s32190    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0191    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1192    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg193    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr194    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 3 /* CC::lo */, $cpsr195    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg196    ; CHECK: $r0 = COPY [[ANDri]]197    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0198    %0(s32) = COPY $r0199    %1(s32) = COPY $r1200    %2(s1) = G_ICMP intpred(ult),  %0(s32), %1201    %3(s32) = G_ZEXT %2(s1)202    $r0 = COPY %3(s32)203    BX_RET 14, $noreg, implicit $r0204...205---206name:            test_icmp_ule_s32207legalized:       true208regBankSelected: true209selected:        false210registers:211  - { id: 0, class: gprb }212  - { id: 1, class: gprb }213  - { id: 2, class: gprb }214  - { id: 3, class: gprb }215body:             |216  bb.0:217    liveins: $r0, $r1218 219    ; CHECK-LABEL: name: test_icmp_ule_s32220    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0221    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1222    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg223    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr224    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9 /* CC::ls */, $cpsr225    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg226    ; CHECK: $r0 = COPY [[ANDri]]227    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0228    %0(s32) = COPY $r0229    %1(s32) = COPY $r1230    %2(s1) = G_ICMP intpred(ule),  %0(s32), %1231    %3(s32) = G_ZEXT %2(s1)232    $r0 = COPY %3(s32)233    BX_RET 14, $noreg, implicit $r0234...235---236name:            test_icmp_sgt_s32237legalized:       true238regBankSelected: true239selected:        false240registers:241  - { id: 0, class: gprb }242  - { id: 1, class: gprb }243  - { id: 2, class: gprb }244  - { id: 3, class: gprb }245body:             |246  bb.0:247    liveins: $r0, $r1248 249    ; CHECK-LABEL: name: test_icmp_sgt_s32250    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0251    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1252    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg253    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr254    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12 /* CC::gt */, $cpsr255    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg256    ; CHECK: $r0 = COPY [[ANDri]]257    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0258    %0(s32) = COPY $r0259    %1(s32) = COPY $r1260    %2(s1) = G_ICMP intpred(sgt),  %0(s32), %1261    %3(s32) = G_ZEXT %2(s1)262    $r0 = COPY %3(s32)263    BX_RET 14, $noreg, implicit $r0264...265---266name:            test_icmp_sge_s32267legalized:       true268regBankSelected: true269selected:        false270registers:271  - { id: 0, class: gprb }272  - { id: 1, class: gprb }273  - { id: 2, class: gprb }274  - { id: 3, class: gprb }275body:             |276  bb.0:277    liveins: $r0, $r1278 279    ; CHECK-LABEL: name: test_icmp_sge_s32280    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0281    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1282    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg283    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr284    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10 /* CC::ge */, $cpsr285    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg286    ; CHECK: $r0 = COPY [[ANDri]]287    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0288    %0(s32) = COPY $r0289    %1(s32) = COPY $r1290    %2(s1) = G_ICMP intpred(sge),  %0(s32), %1291    %3(s32) = G_ZEXT %2(s1)292    $r0 = COPY %3(s32)293    BX_RET 14, $noreg, implicit $r0294...295---296name:            test_icmp_slt_s32297legalized:       true298regBankSelected: true299selected:        false300registers:301  - { id: 0, class: gprb }302  - { id: 1, class: gprb }303  - { id: 2, class: gprb }304  - { id: 3, class: gprb }305body:             |306  bb.0:307    liveins: $r0, $r1308 309    ; CHECK-LABEL: name: test_icmp_slt_s32310    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0311    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1312    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg313    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr314    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11 /* CC::lt */, $cpsr315    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg316    ; CHECK: $r0 = COPY [[ANDri]]317    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0318    %0(s32) = COPY $r0319    %1(s32) = COPY $r1320    %2(s1) = G_ICMP intpred(slt),  %0(s32), %1321    %3(s32) = G_ZEXT %2(s1)322    $r0 = COPY %3(s32)323    BX_RET 14, $noreg, implicit $r0324...325---326name:            test_icmp_sle_s32327legalized:       true328regBankSelected: true329selected:        false330registers:331  - { id: 0, class: gprb }332  - { id: 1, class: gprb }333  - { id: 2, class: gprb }334  - { id: 3, class: gprb }335body:             |336  bb.0:337    liveins: $r0, $r1338 339    ; CHECK-LABEL: name: test_icmp_sle_s32340    ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0341    ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1342    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg343    ; CHECK: CMPrr [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $cpsr344    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13 /* CC::le */, $cpsr345    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg346    ; CHECK: $r0 = COPY [[ANDri]]347    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0348    %0(s32) = COPY $r0349    %1(s32) = COPY $r1350    %2(s1) = G_ICMP intpred(sle),  %0(s32), %1351    %3(s32) = G_ZEXT %2(s1)352    $r0 = COPY %3(s32)353    BX_RET 14, $noreg, implicit $r0354...355---356name:            test_fcmp_true_s32357legalized:       true358regBankSelected: true359selected:        false360registers:361  - { id: 0, class: fprb }362  - { id: 1, class: fprb }363  - { id: 2, class: gprb }364  - { id: 3, class: gprb }365body:             |366  bb.0:367    liveins: $s0, $s1368 369    ; CHECK-LABEL: name: test_fcmp_true_s32370    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 1, 14 /* CC::al */, $noreg, $noreg371    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14 /* CC::al */, $noreg, $noreg372    ; CHECK: $r0 = COPY [[ANDri]]373    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0374    %0(s32) = COPY $s0375    %1(s32) = COPY $s1376    %2(s1) = G_FCMP floatpred(true),  %0(s32), %1377    %3(s32) = G_ZEXT %2(s1)378    $r0 = COPY %3(s32)379    BX_RET 14, $noreg, implicit $r0380...381---382name:            test_fcmp_false_s32383legalized:       true384regBankSelected: true385selected:        false386registers:387  - { id: 0, class: fprb }388  - { id: 1, class: fprb }389  - { id: 2, class: gprb }390  - { id: 3, class: gprb }391body:             |392  bb.0:393    liveins: $s0, $s1394 395    ; CHECK-LABEL: name: test_fcmp_false_s32396    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg397    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14 /* CC::al */, $noreg, $noreg398    ; CHECK: $r0 = COPY [[ANDri]]399    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0400    %0(s32) = COPY $s0401    %1(s32) = COPY $s1402    %2(s1) = G_FCMP floatpred(false),  %0(s32), %1403    %3(s32) = G_ZEXT %2(s1)404    $r0 = COPY %3(s32)405    BX_RET 14, $noreg, implicit $r0406...407---408name:            test_fcmp_oeq_s32409legalized:       true410regBankSelected: true411selected:        false412registers:413  - { id: 0, class: fprb }414  - { id: 1, class: fprb }415  - { id: 2, class: gprb }416  - { id: 3, class: gprb }417body:             |418  bb.0:419    liveins: $s0, $s1420 421    ; CHECK-LABEL: name: test_fcmp_oeq_s32422    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0423    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1424    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg425    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv426    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv427    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0 /* CC::eq */, $cpsr428    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg429    ; CHECK: $r0 = COPY [[ANDri]]430    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0431    %0(s32) = COPY $s0432    %1(s32) = COPY $s1433    %2(s1) = G_FCMP floatpred(oeq),  %0(s32), %1434    %3(s32) = G_ZEXT %2(s1)435    $r0 = COPY %3(s32)436    BX_RET 14, $noreg, implicit $r0437...438---439name:            test_fcmp_ogt_s32440legalized:       true441regBankSelected: true442selected:        false443registers:444  - { id: 0, class: fprb }445  - { id: 1, class: fprb }446  - { id: 2, class: gprb }447  - { id: 3, class: gprb }448body:             |449  bb.0:450    liveins: $s0, $s1451 452    ; CHECK-LABEL: name: test_fcmp_ogt_s32453    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0454    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1455    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg456    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv457    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv458    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12 /* CC::gt */, $cpsr459    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg460    ; CHECK: $r0 = COPY [[ANDri]]461    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0462    %0(s32) = COPY $s0463    %1(s32) = COPY $s1464    %2(s1) = G_FCMP floatpred(ogt),  %0(s32), %1465    %3(s32) = G_ZEXT %2(s1)466    $r0 = COPY %3(s32)467    BX_RET 14, $noreg, implicit $r0468...469---470name:            test_fcmp_oge_s32471legalized:       true472regBankSelected: true473selected:        false474registers:475  - { id: 0, class: fprb }476  - { id: 1, class: fprb }477  - { id: 2, class: gprb }478  - { id: 3, class: gprb }479body:             |480  bb.0:481    liveins: $s0, $s1482 483    ; CHECK-LABEL: name: test_fcmp_oge_s32484    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0485    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1486    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg487    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv488    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv489    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10 /* CC::ge */, $cpsr490    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg491    ; CHECK: $r0 = COPY [[ANDri]]492    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0493    %0(s32) = COPY $s0494    %1(s32) = COPY $s1495    %2(s1) = G_FCMP floatpred(oge),  %0(s32), %1496    %3(s32) = G_ZEXT %2(s1)497    $r0 = COPY %3(s32)498    BX_RET 14, $noreg, implicit $r0499...500---501name:            test_fcmp_olt_s32502legalized:       true503regBankSelected: true504selected:        false505registers:506  - { id: 0, class: fprb }507  - { id: 1, class: fprb }508  - { id: 2, class: gprb }509  - { id: 3, class: gprb }510body:             |511  bb.0:512    liveins: $s0, $s1513 514    ; CHECK-LABEL: name: test_fcmp_olt_s32515    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0516    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1517    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg518    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv519    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv520    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 4 /* CC::mi */, $cpsr521    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg522    ; CHECK: $r0 = COPY [[ANDri]]523    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0524    %0(s32) = COPY $s0525    %1(s32) = COPY $s1526    %2(s1) = G_FCMP floatpred(olt),  %0(s32), %1527    %3(s32) = G_ZEXT %2(s1)528    $r0 = COPY %3(s32)529    BX_RET 14, $noreg, implicit $r0530...531---532name:            test_fcmp_ole_s32533legalized:       true534regBankSelected: true535selected:        false536registers:537  - { id: 0, class: fprb }538  - { id: 1, class: fprb }539  - { id: 2, class: gprb }540  - { id: 3, class: gprb }541body:             |542  bb.0:543    liveins: $s0, $s1544 545    ; CHECK-LABEL: name: test_fcmp_ole_s32546    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0547    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1548    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg549    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv550    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv551    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9 /* CC::ls */, $cpsr552    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg553    ; CHECK: $r0 = COPY [[ANDri]]554    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0555    %0(s32) = COPY $s0556    %1(s32) = COPY $s1557    %2(s1) = G_FCMP floatpred(ole),  %0(s32), %1558    %3(s32) = G_ZEXT %2(s1)559    $r0 = COPY %3(s32)560    BX_RET 14, $noreg, implicit $r0561...562---563name:            test_fcmp_ord_s32564legalized:       true565regBankSelected: true566selected:        false567registers:568  - { id: 0, class: fprb }569  - { id: 1, class: fprb }570  - { id: 2, class: gprb }571  - { id: 3, class: gprb }572body:             |573  bb.0:574    liveins: $s0, $s1575 576    ; CHECK-LABEL: name: test_fcmp_ord_s32577    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0578    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1579    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg580    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv581    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv582    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 7 /* CC::vc */, $cpsr583    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg584    ; CHECK: $r0 = COPY [[ANDri]]585    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0586    %0(s32) = COPY $s0587    %1(s32) = COPY $s1588    %2(s1) = G_FCMP floatpred(ord),  %0(s32), %1589    %3(s32) = G_ZEXT %2(s1)590    $r0 = COPY %3(s32)591    BX_RET 14, $noreg, implicit $r0592...593---594name:            test_fcmp_ugt_s32595legalized:       true596regBankSelected: true597selected:        false598registers:599  - { id: 0, class: fprb }600  - { id: 1, class: fprb }601  - { id: 2, class: gprb }602  - { id: 3, class: gprb }603body:             |604  bb.0:605    liveins: $s0, $s1606 607    ; CHECK-LABEL: name: test_fcmp_ugt_s32608    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0609    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1610    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg611    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv612    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv613    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8 /* CC::hi */, $cpsr614    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg615    ; CHECK: $r0 = COPY [[ANDri]]616    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0617    %0(s32) = COPY $s0618    %1(s32) = COPY $s1619    %2(s1) = G_FCMP floatpred(ugt),  %0(s32), %1620    %3(s32) = G_ZEXT %2(s1)621    $r0 = COPY %3(s32)622    BX_RET 14, $noreg, implicit $r0623...624---625name:            test_fcmp_uge_s32626legalized:       true627regBankSelected: true628selected:        false629registers:630  - { id: 0, class: fprb }631  - { id: 1, class: fprb }632  - { id: 2, class: gprb }633  - { id: 3, class: gprb }634body:             |635  bb.0:636    liveins: $s0, $s1637 638    ; CHECK-LABEL: name: test_fcmp_uge_s32639    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0640    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1641    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg642    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv643    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv644    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 5 /* CC::pl */, $cpsr645    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg646    ; CHECK: $r0 = COPY [[ANDri]]647    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0648    %0(s32) = COPY $s0649    %1(s32) = COPY $s1650    %2(s1) = G_FCMP floatpred(uge),  %0(s32), %1651    %3(s32) = G_ZEXT %2(s1)652    $r0 = COPY %3(s32)653    BX_RET 14, $noreg, implicit $r0654...655---656name:            test_fcmp_ult_s32657legalized:       true658regBankSelected: true659selected:        false660registers:661  - { id: 0, class: fprb }662  - { id: 1, class: fprb }663  - { id: 2, class: gprb }664  - { id: 3, class: gprb }665body:             |666  bb.0:667    liveins: $s0, $s1668 669    ; CHECK-LABEL: name: test_fcmp_ult_s32670    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0671    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1672    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg673    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv674    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv675    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11 /* CC::lt */, $cpsr676    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg677    ; CHECK: $r0 = COPY [[ANDri]]678    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0679    %0(s32) = COPY $s0680    %1(s32) = COPY $s1681    %2(s1) = G_FCMP floatpred(ult),  %0(s32), %1682    %3(s32) = G_ZEXT %2(s1)683    $r0 = COPY %3(s32)684    BX_RET 14, $noreg, implicit $r0685...686---687name:            test_fcmp_ule_s32688legalized:       true689regBankSelected: true690selected:        false691registers:692  - { id: 0, class: fprb }693  - { id: 1, class: fprb }694  - { id: 2, class: gprb }695  - { id: 3, class: gprb }696body:             |697  bb.0:698    liveins: $s0, $s1699 700    ; CHECK-LABEL: name: test_fcmp_ule_s32701    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0702    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1703    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg704    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv705    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv706    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13 /* CC::le */, $cpsr707    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg708    ; CHECK: $r0 = COPY [[ANDri]]709    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0710    %0(s32) = COPY $s0711    %1(s32) = COPY $s1712    %2(s1) = G_FCMP floatpred(ule),  %0(s32), %1713    %3(s32) = G_ZEXT %2(s1)714    $r0 = COPY %3(s32)715    BX_RET 14, $noreg, implicit $r0716...717---718name:            test_fcmp_une_s32719legalized:       true720regBankSelected: true721selected:        false722registers:723  - { id: 0, class: fprb }724  - { id: 1, class: fprb }725  - { id: 2, class: gprb }726  - { id: 3, class: gprb }727body:             |728  bb.0:729    liveins: $s0, $s1730 731    ; CHECK-LABEL: name: test_fcmp_une_s32732    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0733    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1734    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg735    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv736    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv737    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1 /* CC::ne */, $cpsr738    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg739    ; CHECK: $r0 = COPY [[ANDri]]740    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0741    %0(s32) = COPY $s0742    %1(s32) = COPY $s1743    %2(s1) = G_FCMP floatpred(une),  %0(s32), %1744    %3(s32) = G_ZEXT %2(s1)745    $r0 = COPY %3(s32)746    BX_RET 14, $noreg, implicit $r0747...748---749name:            test_fcmp_uno_s32750legalized:       true751regBankSelected: true752selected:        false753registers:754  - { id: 0, class: fprb }755  - { id: 1, class: fprb }756  - { id: 2, class: gprb }757  - { id: 3, class: gprb }758body:             |759  bb.0:760    liveins: $s0, $s1761 762    ; CHECK-LABEL: name: test_fcmp_uno_s32763    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0764    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1765    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg766    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv767    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv768    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 6 /* CC::vs */, $cpsr769    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg770    ; CHECK: $r0 = COPY [[ANDri]]771    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0772    %0(s32) = COPY $s0773    %1(s32) = COPY $s1774    %2(s1) = G_FCMP floatpred(uno),  %0(s32), %1775    %3(s32) = G_ZEXT %2(s1)776    $r0 = COPY %3(s32)777    BX_RET 14, $noreg, implicit $r0778...779---780name:            test_fcmp_one_s32781legalized:       true782regBankSelected: true783selected:        false784registers:785  - { id: 0, class: fprb }786  - { id: 1, class: fprb }787  - { id: 2, class: gprb }788  - { id: 3, class: gprb }789body:             |790  bb.0:791    liveins: $s0, $s1792 793    ; CHECK-LABEL: name: test_fcmp_one_s32794    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0795    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1796    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg797    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv798    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv799    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12 /* CC::gt */, $cpsr800    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv801    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv802    ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 4 /* CC::mi */, $cpsr803    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14 /* CC::al */, $noreg, $noreg804    ; CHECK: $r0 = COPY [[ANDri]]805    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0806    %0(s32) = COPY $s0807    %1(s32) = COPY $s1808    %2(s1) = G_FCMP floatpred(one),  %0(s32), %1809    %3(s32) = G_ZEXT %2(s1)810    $r0 = COPY %3(s32)811    BX_RET 14, $noreg, implicit $r0812...813---814name:            test_fcmp_ueq_s32815legalized:       true816regBankSelected: true817selected:        false818registers:819  - { id: 0, class: fprb }820  - { id: 1, class: fprb }821  - { id: 2, class: gprb }822  - { id: 3, class: gprb }823body:             |824  bb.0:825    liveins: $s0, $s1826 827    ; CHECK-LABEL: name: test_fcmp_ueq_s32828    ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0829    ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1830    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg831    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv832    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv833    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0 /* CC::eq */, $cpsr834    ; CHECK: VCMPS [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv835    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv836    ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 6 /* CC::vs */, $cpsr837    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14 /* CC::al */, $noreg, $noreg838    ; CHECK: $r0 = COPY [[ANDri]]839    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0840    %0(s32) = COPY $s0841    %1(s32) = COPY $s1842    %2(s1) = G_FCMP floatpred(ueq),  %0(s32), %1843    %3(s32) = G_ZEXT %2(s1)844    $r0 = COPY %3(s32)845    BX_RET 14, $noreg, implicit $r0846...847---848name:            test_fcmp_true_s64849legalized:       true850regBankSelected: true851selected:        false852registers:853  - { id: 0, class: fprb }854  - { id: 1, class: fprb }855  - { id: 2, class: gprb }856  - { id: 3, class: gprb }857body:             |858  bb.0:859    liveins: $d0, $d1860 861    ; CHECK-LABEL: name: test_fcmp_true_s64862    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 1, 14 /* CC::al */, $noreg, $noreg863    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14 /* CC::al */, $noreg, $noreg864    ; CHECK: $r0 = COPY [[ANDri]]865    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0866    %0(s64) = COPY $d0867    %1(s64) = COPY $d1868    %2(s1) = G_FCMP floatpred(true),  %0(s64), %1869    %3(s32) = G_ZEXT %2(s1)870    $r0 = COPY %3(s32)871    BX_RET 14, $noreg, implicit $r0872...873---874name:            test_fcmp_false_s64875legalized:       true876regBankSelected: true877selected:        false878registers:879  - { id: 0, class: fprb }880  - { id: 1, class: fprb }881  - { id: 2, class: gprb }882  - { id: 3, class: gprb }883body:             |884  bb.0:885    liveins: $d0, $d1886 887    ; CHECK-LABEL: name: test_fcmp_false_s64888    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg889    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14 /* CC::al */, $noreg, $noreg890    ; CHECK: $r0 = COPY [[ANDri]]891    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0892    %0(s64) = COPY $d0893    %1(s64) = COPY $d1894    %2(s1) = G_FCMP floatpred(false),  %0(s64), %1895    %3(s32) = G_ZEXT %2(s1)896    $r0 = COPY %3(s32)897    BX_RET 14, $noreg, implicit $r0898...899---900name:            test_fcmp_oeq_s64901legalized:       true902regBankSelected: true903selected:        false904registers:905  - { id: 0, class: fprb }906  - { id: 1, class: fprb }907  - { id: 2, class: gprb }908  - { id: 3, class: gprb }909body:             |910  bb.0:911    liveins: $d0, $d1912 913    ; CHECK-LABEL: name: test_fcmp_oeq_s64914    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0915    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1916    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg917    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv918    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv919    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0 /* CC::eq */, $cpsr920    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg921    ; CHECK: $r0 = COPY [[ANDri]]922    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0923    %0(s64) = COPY $d0924    %1(s64) = COPY $d1925    %2(s1) = G_FCMP floatpred(oeq),  %0(s64), %1926    %3(s32) = G_ZEXT %2(s1)927    $r0 = COPY %3(s32)928    BX_RET 14, $noreg, implicit $r0929...930---931name:            test_fcmp_ogt_s64932legalized:       true933regBankSelected: true934selected:        false935registers:936  - { id: 0, class: fprb }937  - { id: 1, class: fprb }938  - { id: 2, class: gprb }939  - { id: 3, class: gprb }940body:             |941  bb.0:942    liveins: $d0, $d1943 944    ; CHECK-LABEL: name: test_fcmp_ogt_s64945    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0946    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1947    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg948    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv949    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv950    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12 /* CC::gt */, $cpsr951    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg952    ; CHECK: $r0 = COPY [[ANDri]]953    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0954    %0(s64) = COPY $d0955    %1(s64) = COPY $d1956    %2(s1) = G_FCMP floatpred(ogt),  %0(s64), %1957    %3(s32) = G_ZEXT %2(s1)958    $r0 = COPY %3(s32)959    BX_RET 14, $noreg, implicit $r0960...961---962name:            test_fcmp_oge_s64963legalized:       true964regBankSelected: true965selected:        false966registers:967  - { id: 0, class: fprb }968  - { id: 1, class: fprb }969  - { id: 2, class: gprb }970  - { id: 3, class: gprb }971body:             |972  bb.0:973    liveins: $d0, $d1974 975    ; CHECK-LABEL: name: test_fcmp_oge_s64976    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0977    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1978    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg979    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv980    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv981    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10 /* CC::ge */, $cpsr982    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg983    ; CHECK: $r0 = COPY [[ANDri]]984    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0985    %0(s64) = COPY $d0986    %1(s64) = COPY $d1987    %2(s1) = G_FCMP floatpred(oge),  %0(s64), %1988    %3(s32) = G_ZEXT %2(s1)989    $r0 = COPY %3(s32)990    BX_RET 14, $noreg, implicit $r0991...992---993name:            test_fcmp_olt_s64994legalized:       true995regBankSelected: true996selected:        false997registers:998  - { id: 0, class: fprb }999  - { id: 1, class: fprb }1000  - { id: 2, class: gprb }1001  - { id: 3, class: gprb }1002body:             |1003  bb.0:1004    liveins: $d0, $d11005 1006    ; CHECK-LABEL: name: test_fcmp_olt_s641007    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01008    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11009    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1010    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1011    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1012    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 4 /* CC::mi */, $cpsr1013    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1014    ; CHECK: $r0 = COPY [[ANDri]]1015    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01016    %0(s64) = COPY $d01017    %1(s64) = COPY $d11018    %2(s1) = G_FCMP floatpred(olt),  %0(s64), %11019    %3(s32) = G_ZEXT %2(s1)1020    $r0 = COPY %3(s32)1021    BX_RET 14, $noreg, implicit $r01022...1023---1024name:            test_fcmp_ole_s641025legalized:       true1026regBankSelected: true1027selected:        false1028registers:1029  - { id: 0, class: fprb }1030  - { id: 1, class: fprb }1031  - { id: 2, class: gprb }1032  - { id: 3, class: gprb }1033body:             |1034  bb.0:1035    liveins: $d0, $d11036 1037    ; CHECK-LABEL: name: test_fcmp_ole_s641038    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01039    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11040    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1041    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1042    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1043    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9 /* CC::ls */, $cpsr1044    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1045    ; CHECK: $r0 = COPY [[ANDri]]1046    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01047    %0(s64) = COPY $d01048    %1(s64) = COPY $d11049    %2(s1) = G_FCMP floatpred(ole),  %0(s64), %11050    %3(s32) = G_ZEXT %2(s1)1051    $r0 = COPY %3(s32)1052    BX_RET 14, $noreg, implicit $r01053...1054---1055name:            test_fcmp_ord_s641056legalized:       true1057regBankSelected: true1058selected:        false1059registers:1060  - { id: 0, class: fprb }1061  - { id: 1, class: fprb }1062  - { id: 2, class: gprb }1063  - { id: 3, class: gprb }1064body:             |1065  bb.0:1066    liveins: $d0, $d11067 1068    ; CHECK-LABEL: name: test_fcmp_ord_s641069    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01070    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11071    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1072    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1073    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1074    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 7 /* CC::vc */, $cpsr1075    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1076    ; CHECK: $r0 = COPY [[ANDri]]1077    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01078    %0(s64) = COPY $d01079    %1(s64) = COPY $d11080    %2(s1) = G_FCMP floatpred(ord),  %0(s64), %11081    %3(s32) = G_ZEXT %2(s1)1082    $r0 = COPY %3(s32)1083    BX_RET 14, $noreg, implicit $r01084...1085---1086name:            test_fcmp_ugt_s641087legalized:       true1088regBankSelected: true1089selected:        false1090registers:1091  - { id: 0, class: fprb }1092  - { id: 1, class: fprb }1093  - { id: 2, class: gprb }1094  - { id: 3, class: gprb }1095body:             |1096  bb.0:1097    liveins: $d0, $d11098 1099    ; CHECK-LABEL: name: test_fcmp_ugt_s641100    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01101    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11102    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1103    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1104    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1105    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8 /* CC::hi */, $cpsr1106    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1107    ; CHECK: $r0 = COPY [[ANDri]]1108    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01109    %0(s64) = COPY $d01110    %1(s64) = COPY $d11111    %2(s1) = G_FCMP floatpred(ugt),  %0(s64), %11112    %3(s32) = G_ZEXT %2(s1)1113    $r0 = COPY %3(s32)1114    BX_RET 14, $noreg, implicit $r01115...1116---1117name:            test_fcmp_uge_s641118legalized:       true1119regBankSelected: true1120selected:        false1121registers:1122  - { id: 0, class: fprb }1123  - { id: 1, class: fprb }1124  - { id: 2, class: gprb }1125  - { id: 3, class: gprb }1126body:             |1127  bb.0:1128    liveins: $d0, $d11129 1130    ; CHECK-LABEL: name: test_fcmp_uge_s641131    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01132    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11133    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1134    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1135    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1136    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 5 /* CC::pl */, $cpsr1137    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1138    ; CHECK: $r0 = COPY [[ANDri]]1139    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01140    %0(s64) = COPY $d01141    %1(s64) = COPY $d11142    %2(s1) = G_FCMP floatpred(uge),  %0(s64), %11143    %3(s32) = G_ZEXT %2(s1)1144    $r0 = COPY %3(s32)1145    BX_RET 14, $noreg, implicit $r01146...1147---1148name:            test_fcmp_ult_s641149legalized:       true1150regBankSelected: true1151selected:        false1152registers:1153  - { id: 0, class: fprb }1154  - { id: 1, class: fprb }1155  - { id: 2, class: gprb }1156  - { id: 3, class: gprb }1157body:             |1158  bb.0:1159    liveins: $d0, $d11160 1161    ; CHECK-LABEL: name: test_fcmp_ult_s641162    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01163    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11164    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1165    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1166    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1167    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11 /* CC::lt */, $cpsr1168    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1169    ; CHECK: $r0 = COPY [[ANDri]]1170    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01171    %0(s64) = COPY $d01172    %1(s64) = COPY $d11173    %2(s1) = G_FCMP floatpred(ult),  %0(s64), %11174    %3(s32) = G_ZEXT %2(s1)1175    $r0 = COPY %3(s32)1176    BX_RET 14, $noreg, implicit $r01177...1178---1179name:            test_fcmp_ule_s641180legalized:       true1181regBankSelected: true1182selected:        false1183registers:1184  - { id: 0, class: fprb }1185  - { id: 1, class: fprb }1186  - { id: 2, class: gprb }1187  - { id: 3, class: gprb }1188body:             |1189  bb.0:1190    liveins: $d0, $d11191 1192    ; CHECK-LABEL: name: test_fcmp_ule_s641193    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01194    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11195    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1196    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1197    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1198    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13 /* CC::le */, $cpsr1199    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1200    ; CHECK: $r0 = COPY [[ANDri]]1201    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01202    %0(s64) = COPY $d01203    %1(s64) = COPY $d11204    %2(s1) = G_FCMP floatpred(ule),  %0(s64), %11205    %3(s32) = G_ZEXT %2(s1)1206    $r0 = COPY %3(s32)1207    BX_RET 14, $noreg, implicit $r01208...1209---1210name:            test_fcmp_une_s641211legalized:       true1212regBankSelected: true1213selected:        false1214registers:1215  - { id: 0, class: fprb }1216  - { id: 1, class: fprb }1217  - { id: 2, class: gprb }1218  - { id: 3, class: gprb }1219body:             |1220  bb.0:1221    liveins: $d0, $d11222 1223    ; CHECK-LABEL: name: test_fcmp_une_s641224    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01225    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11226    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1227    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1228    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1229    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1 /* CC::ne */, $cpsr1230    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1231    ; CHECK: $r0 = COPY [[ANDri]]1232    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01233    %0(s64) = COPY $d01234    %1(s64) = COPY $d11235    %2(s1) = G_FCMP floatpred(une),  %0(s64), %11236    %3(s32) = G_ZEXT %2(s1)1237    $r0 = COPY %3(s32)1238    BX_RET 14, $noreg, implicit $r01239...1240---1241name:            test_fcmp_uno_s641242legalized:       true1243regBankSelected: true1244selected:        false1245registers:1246  - { id: 0, class: fprb }1247  - { id: 1, class: fprb }1248  - { id: 2, class: gprb }1249  - { id: 3, class: gprb }1250body:             |1251  bb.0:1252    liveins: $d0, $d11253 1254    ; CHECK-LABEL: name: test_fcmp_uno_s641255    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01256    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11257    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1258    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1259    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1260    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 6 /* CC::vs */, $cpsr1261    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14 /* CC::al */, $noreg, $noreg1262    ; CHECK: $r0 = COPY [[ANDri]]1263    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01264    %0(s64) = COPY $d01265    %1(s64) = COPY $d11266    %2(s1) = G_FCMP floatpred(uno),  %0(s64), %11267    %3(s32) = G_ZEXT %2(s1)1268    $r0 = COPY %3(s32)1269    BX_RET 14, $noreg, implicit $r01270...1271---1272name:            test_fcmp_one_s641273legalized:       true1274regBankSelected: true1275selected:        false1276registers:1277  - { id: 0, class: fprb }1278  - { id: 1, class: fprb }1279  - { id: 2, class: gprb }1280  - { id: 3, class: gprb }1281body:             |1282  bb.0:1283    liveins: $d0, $d11284 1285    ; CHECK-LABEL: name: test_fcmp_one_s641286    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01287    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11288    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1289    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1290    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1291    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12 /* CC::gt */, $cpsr1292    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1293    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1294    ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 4 /* CC::mi */, $cpsr1295    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14 /* CC::al */, $noreg, $noreg1296    ; CHECK: $r0 = COPY [[ANDri]]1297    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01298    %0(s64) = COPY $d01299    %1(s64) = COPY $d11300    %2(s1) = G_FCMP floatpred(one),  %0(s64), %11301    %3(s32) = G_ZEXT %2(s1)1302    $r0 = COPY %3(s32)1303    BX_RET 14, $noreg, implicit $r01304...1305---1306name:            test_fcmp_ueq_s641307legalized:       true1308regBankSelected: true1309selected:        false1310registers:1311  - { id: 0, class: fprb }1312  - { id: 1, class: fprb }1313  - { id: 2, class: gprb }1314  - { id: 3, class: gprb }1315body:             |1316  bb.0:1317    liveins: $d0, $d11318 1319    ; CHECK-LABEL: name: test_fcmp_ueq_s641320    ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d01321    ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d11322    ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14 /* CC::al */, $noreg, $noreg1323    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1324    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1325    ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0 /* CC::eq */, $cpsr1326    ; CHECK: VCMPD [[COPY]], [[COPY1]], 14 /* CC::al */, $noreg, implicit-def $fpscr_nzcv1327    ; CHECK: FMSTAT 14 /* CC::al */, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv1328    ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 6 /* CC::vs */, $cpsr1329    ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14 /* CC::al */, $noreg, $noreg1330    ; CHECK: $r0 = COPY [[ANDri]]1331    ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r01332    %0(s64) = COPY $d01333    %1(s64) = COPY $d11334    %2(s1) = G_FCMP floatpred(ueq),  %0(s64), %11335    %3(s32) = G_ZEXT %2(s1)1336    $r0 = COPY %3(s32)1337    BX_RET 14, $noreg, implicit $r01338...1339