Home | History | Annotate | Download | only in GlobalISel
      1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
      2 # RUN: llc -O0 -mtriple arm-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
      3 --- |
      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 ---
     56 name:            test_icmp_eq_s32
     57 legalized:       true
     58 regBankSelected: true
     59 selected:        false
     60 registers:
     61   - { id: 0, class: gprb }
     62   - { id: 1, class: gprb }
     63   - { id: 2, class: gprb }
     64   - { id: 3, class: gprb }
     65 body:             |
     66   bb.0:
     67     liveins: $r0, $r1
     68 
     69     ; CHECK-LABEL: name: test_icmp_eq_s32
     70     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
     71     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
     72     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
     73     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
     74     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0, $cpsr
     75     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
     76     ; CHECK: $r0 = COPY [[ANDri]]
     77     ; CHECK: BX_RET 14, $noreg, implicit $r0
     78     %0(s32) = COPY $r0
     79     %1(s32) = COPY $r1
     80     %2(s1) = G_ICMP intpred(eq),  %0(s32), %1
     81     %3(s32) = G_ZEXT %2(s1)
     82     $r0 = COPY %3(s32)
     83     BX_RET 14, $noreg, implicit $r0
     84 ...
     85 ---
     86 name:            test_icmp_ne_s32
     87 legalized:       true
     88 regBankSelected: true
     89 selected:        false
     90 registers:
     91   - { id: 0, class: gprb }
     92   - { id: 1, class: gprb }
     93   - { id: 2, class: gprb }
     94   - { id: 3, class: gprb }
     95 body:             |
     96   bb.0:
     97     liveins: $r0, $r1
     98 
     99     ; CHECK-LABEL: name: test_icmp_ne_s32
    100     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    101     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    102     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    103     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    104     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1, $cpsr
    105     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    106     ; CHECK: $r0 = COPY [[ANDri]]
    107     ; CHECK: BX_RET 14, $noreg, implicit $r0
    108     %0(s32) = COPY $r0
    109     %1(s32) = COPY $r1
    110     %2(s1) = G_ICMP intpred(ne),  %0(s32), %1
    111     %3(s32) = G_ZEXT %2(s1)
    112     $r0 = COPY %3(s32)
    113     BX_RET 14, $noreg, implicit $r0
    114 ...
    115 ---
    116 name:            test_icmp_ugt_s32
    117 legalized:       true
    118 regBankSelected: true
    119 selected:        false
    120 registers:
    121   - { id: 0, class: gprb }
    122   - { id: 1, class: gprb }
    123   - { id: 2, class: gprb }
    124   - { id: 3, class: gprb }
    125 body:             |
    126   bb.0:
    127     liveins: $r0, $r1
    128 
    129     ; CHECK-LABEL: name: test_icmp_ugt_s32
    130     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    131     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    132     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    133     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    134     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8, $cpsr
    135     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    136     ; CHECK: $r0 = COPY [[ANDri]]
    137     ; CHECK: BX_RET 14, $noreg, implicit $r0
    138     %0(s32) = COPY $r0
    139     %1(s32) = COPY $r1
    140     %2(s1) = G_ICMP intpred(ugt),  %0(s32), %1
    141     %3(s32) = G_ZEXT %2(s1)
    142     $r0 = COPY %3(s32)
    143     BX_RET 14, $noreg, implicit $r0
    144 ...
    145 ---
    146 name:            test_icmp_uge_s32
    147 legalized:       true
    148 regBankSelected: true
    149 selected:        false
    150 registers:
    151   - { id: 0, class: gprb }
    152   - { id: 1, class: gprb }
    153   - { id: 2, class: gprb }
    154   - { id: 3, class: gprb }
    155 body:             |
    156   bb.0:
    157     liveins: $r0, $r1
    158 
    159     ; CHECK-LABEL: name: test_icmp_uge_s32
    160     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    161     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    162     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    163     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    164     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 2, $cpsr
    165     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    166     ; CHECK: $r0 = COPY [[ANDri]]
    167     ; CHECK: BX_RET 14, $noreg, implicit $r0
    168     %0(s32) = COPY $r0
    169     %1(s32) = COPY $r1
    170     %2(s1) = G_ICMP intpred(uge),  %0(s32), %1
    171     %3(s32) = G_ZEXT %2(s1)
    172     $r0 = COPY %3(s32)
    173     BX_RET 14, $noreg, implicit $r0
    174 ...
    175 ---
    176 name:            test_icmp_ult_s32
    177 legalized:       true
    178 regBankSelected: true
    179 selected:        false
    180 registers:
    181   - { id: 0, class: gprb }
    182   - { id: 1, class: gprb }
    183   - { id: 2, class: gprb }
    184   - { id: 3, class: gprb }
    185 body:             |
    186   bb.0:
    187     liveins: $r0, $r1
    188 
    189     ; CHECK-LABEL: name: test_icmp_ult_s32
    190     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    191     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    192     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    193     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    194     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 3, $cpsr
    195     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    196     ; CHECK: $r0 = COPY [[ANDri]]
    197     ; CHECK: BX_RET 14, $noreg, implicit $r0
    198     %0(s32) = COPY $r0
    199     %1(s32) = COPY $r1
    200     %2(s1) = G_ICMP intpred(ult),  %0(s32), %1
    201     %3(s32) = G_ZEXT %2(s1)
    202     $r0 = COPY %3(s32)
    203     BX_RET 14, $noreg, implicit $r0
    204 ...
    205 ---
    206 name:            test_icmp_ule_s32
    207 legalized:       true
    208 regBankSelected: true
    209 selected:        false
    210 registers:
    211   - { id: 0, class: gprb }
    212   - { id: 1, class: gprb }
    213   - { id: 2, class: gprb }
    214   - { id: 3, class: gprb }
    215 body:             |
    216   bb.0:
    217     liveins: $r0, $r1
    218 
    219     ; CHECK-LABEL: name: test_icmp_ule_s32
    220     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    221     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    222     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    223     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    224     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9, $cpsr
    225     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    226     ; CHECK: $r0 = COPY [[ANDri]]
    227     ; CHECK: BX_RET 14, $noreg, implicit $r0
    228     %0(s32) = COPY $r0
    229     %1(s32) = COPY $r1
    230     %2(s1) = G_ICMP intpred(ule),  %0(s32), %1
    231     %3(s32) = G_ZEXT %2(s1)
    232     $r0 = COPY %3(s32)
    233     BX_RET 14, $noreg, implicit $r0
    234 ...
    235 ---
    236 name:            test_icmp_sgt_s32
    237 legalized:       true
    238 regBankSelected: true
    239 selected:        false
    240 registers:
    241   - { id: 0, class: gprb }
    242   - { id: 1, class: gprb }
    243   - { id: 2, class: gprb }
    244   - { id: 3, class: gprb }
    245 body:             |
    246   bb.0:
    247     liveins: $r0, $r1
    248 
    249     ; CHECK-LABEL: name: test_icmp_sgt_s32
    250     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    251     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    252     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    253     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    254     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12, $cpsr
    255     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    256     ; CHECK: $r0 = COPY [[ANDri]]
    257     ; CHECK: BX_RET 14, $noreg, implicit $r0
    258     %0(s32) = COPY $r0
    259     %1(s32) = COPY $r1
    260     %2(s1) = G_ICMP intpred(sgt),  %0(s32), %1
    261     %3(s32) = G_ZEXT %2(s1)
    262     $r0 = COPY %3(s32)
    263     BX_RET 14, $noreg, implicit $r0
    264 ...
    265 ---
    266 name:            test_icmp_sge_s32
    267 legalized:       true
    268 regBankSelected: true
    269 selected:        false
    270 registers:
    271   - { id: 0, class: gprb }
    272   - { id: 1, class: gprb }
    273   - { id: 2, class: gprb }
    274   - { id: 3, class: gprb }
    275 body:             |
    276   bb.0:
    277     liveins: $r0, $r1
    278 
    279     ; CHECK-LABEL: name: test_icmp_sge_s32
    280     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    281     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    282     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    283     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    284     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10, $cpsr
    285     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    286     ; CHECK: $r0 = COPY [[ANDri]]
    287     ; CHECK: BX_RET 14, $noreg, implicit $r0
    288     %0(s32) = COPY $r0
    289     %1(s32) = COPY $r1
    290     %2(s1) = G_ICMP intpred(sge),  %0(s32), %1
    291     %3(s32) = G_ZEXT %2(s1)
    292     $r0 = COPY %3(s32)
    293     BX_RET 14, $noreg, implicit $r0
    294 ...
    295 ---
    296 name:            test_icmp_slt_s32
    297 legalized:       true
    298 regBankSelected: true
    299 selected:        false
    300 registers:
    301   - { id: 0, class: gprb }
    302   - { id: 1, class: gprb }
    303   - { id: 2, class: gprb }
    304   - { id: 3, class: gprb }
    305 body:             |
    306   bb.0:
    307     liveins: $r0, $r1
    308 
    309     ; CHECK-LABEL: name: test_icmp_slt_s32
    310     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    311     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    312     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    313     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    314     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11, $cpsr
    315     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    316     ; CHECK: $r0 = COPY [[ANDri]]
    317     ; CHECK: BX_RET 14, $noreg, implicit $r0
    318     %0(s32) = COPY $r0
    319     %1(s32) = COPY $r1
    320     %2(s1) = G_ICMP intpred(slt),  %0(s32), %1
    321     %3(s32) = G_ZEXT %2(s1)
    322     $r0 = COPY %3(s32)
    323     BX_RET 14, $noreg, implicit $r0
    324 ...
    325 ---
    326 name:            test_icmp_sle_s32
    327 legalized:       true
    328 regBankSelected: true
    329 selected:        false
    330 registers:
    331   - { id: 0, class: gprb }
    332   - { id: 1, class: gprb }
    333   - { id: 2, class: gprb }
    334   - { id: 3, class: gprb }
    335 body:             |
    336   bb.0:
    337     liveins: $r0, $r1
    338 
    339     ; CHECK-LABEL: name: test_icmp_sle_s32
    340     ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0
    341     ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1
    342     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    343     ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, $noreg, implicit-def $cpsr
    344     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13, $cpsr
    345     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    346     ; CHECK: $r0 = COPY [[ANDri]]
    347     ; CHECK: BX_RET 14, $noreg, implicit $r0
    348     %0(s32) = COPY $r0
    349     %1(s32) = COPY $r1
    350     %2(s1) = G_ICMP intpred(sle),  %0(s32), %1
    351     %3(s32) = G_ZEXT %2(s1)
    352     $r0 = COPY %3(s32)
    353     BX_RET 14, $noreg, implicit $r0
    354 ...
    355 ---
    356 name:            test_fcmp_true_s32
    357 legalized:       true
    358 regBankSelected: true
    359 selected:        false
    360 registers:
    361   - { id: 0, class: fprb }
    362   - { id: 1, class: fprb }
    363   - { id: 2, class: gprb }
    364   - { id: 3, class: gprb }
    365 body:             |
    366   bb.0:
    367     liveins: $s0, $s1
    368 
    369     ; CHECK-LABEL: name: test_fcmp_true_s32
    370     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 1, 14, $noreg, $noreg
    371     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14, $noreg, $noreg
    372     ; CHECK: $r0 = COPY [[ANDri]]
    373     ; CHECK: BX_RET 14, $noreg, implicit $r0
    374     %0(s32) = COPY $s0
    375     %1(s32) = COPY $s1
    376     %2(s1) = G_FCMP floatpred(true),  %0(s32), %1
    377     %3(s32) = G_ZEXT %2(s1)
    378     $r0 = COPY %3(s32)
    379     BX_RET 14, $noreg, implicit $r0
    380 ...
    381 ---
    382 name:            test_fcmp_false_s32
    383 legalized:       true
    384 regBankSelected: true
    385 selected:        false
    386 registers:
    387   - { id: 0, class: fprb }
    388   - { id: 1, class: fprb }
    389   - { id: 2, class: gprb }
    390   - { id: 3, class: gprb }
    391 body:             |
    392   bb.0:
    393     liveins: $s0, $s1
    394 
    395     ; CHECK-LABEL: name: test_fcmp_false_s32
    396     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    397     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14, $noreg, $noreg
    398     ; CHECK: $r0 = COPY [[ANDri]]
    399     ; CHECK: BX_RET 14, $noreg, implicit $r0
    400     %0(s32) = COPY $s0
    401     %1(s32) = COPY $s1
    402     %2(s1) = G_FCMP floatpred(false),  %0(s32), %1
    403     %3(s32) = G_ZEXT %2(s1)
    404     $r0 = COPY %3(s32)
    405     BX_RET 14, $noreg, implicit $r0
    406 ...
    407 ---
    408 name:            test_fcmp_oeq_s32
    409 legalized:       true
    410 regBankSelected: true
    411 selected:        false
    412 registers:
    413   - { id: 0, class: fprb }
    414   - { id: 1, class: fprb }
    415   - { id: 2, class: gprb }
    416   - { id: 3, class: gprb }
    417 body:             |
    418   bb.0:
    419     liveins: $s0, $s1
    420 
    421     ; CHECK-LABEL: name: test_fcmp_oeq_s32
    422     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    423     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    424     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    425     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    426     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    427     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0, $cpsr
    428     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    429     ; CHECK: $r0 = COPY [[ANDri]]
    430     ; CHECK: BX_RET 14, $noreg, implicit $r0
    431     %0(s32) = COPY $s0
    432     %1(s32) = COPY $s1
    433     %2(s1) = G_FCMP floatpred(oeq),  %0(s32), %1
    434     %3(s32) = G_ZEXT %2(s1)
    435     $r0 = COPY %3(s32)
    436     BX_RET 14, $noreg, implicit $r0
    437 ...
    438 ---
    439 name:            test_fcmp_ogt_s32
    440 legalized:       true
    441 regBankSelected: true
    442 selected:        false
    443 registers:
    444   - { id: 0, class: fprb }
    445   - { id: 1, class: fprb }
    446   - { id: 2, class: gprb }
    447   - { id: 3, class: gprb }
    448 body:             |
    449   bb.0:
    450     liveins: $s0, $s1
    451 
    452     ; CHECK-LABEL: name: test_fcmp_ogt_s32
    453     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    454     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    455     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    456     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    457     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    458     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12, $cpsr
    459     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    460     ; CHECK: $r0 = COPY [[ANDri]]
    461     ; CHECK: BX_RET 14, $noreg, implicit $r0
    462     %0(s32) = COPY $s0
    463     %1(s32) = COPY $s1
    464     %2(s1) = G_FCMP floatpred(ogt),  %0(s32), %1
    465     %3(s32) = G_ZEXT %2(s1)
    466     $r0 = COPY %3(s32)
    467     BX_RET 14, $noreg, implicit $r0
    468 ...
    469 ---
    470 name:            test_fcmp_oge_s32
    471 legalized:       true
    472 regBankSelected: true
    473 selected:        false
    474 registers:
    475   - { id: 0, class: fprb }
    476   - { id: 1, class: fprb }
    477   - { id: 2, class: gprb }
    478   - { id: 3, class: gprb }
    479 body:             |
    480   bb.0:
    481     liveins: $s0, $s1
    482 
    483     ; CHECK-LABEL: name: test_fcmp_oge_s32
    484     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    485     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    486     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    487     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    488     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    489     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10, $cpsr
    490     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    491     ; CHECK: $r0 = COPY [[ANDri]]
    492     ; CHECK: BX_RET 14, $noreg, implicit $r0
    493     %0(s32) = COPY $s0
    494     %1(s32) = COPY $s1
    495     %2(s1) = G_FCMP floatpred(oge),  %0(s32), %1
    496     %3(s32) = G_ZEXT %2(s1)
    497     $r0 = COPY %3(s32)
    498     BX_RET 14, $noreg, implicit $r0
    499 ...
    500 ---
    501 name:            test_fcmp_olt_s32
    502 legalized:       true
    503 regBankSelected: true
    504 selected:        false
    505 registers:
    506   - { id: 0, class: fprb }
    507   - { id: 1, class: fprb }
    508   - { id: 2, class: gprb }
    509   - { id: 3, class: gprb }
    510 body:             |
    511   bb.0:
    512     liveins: $s0, $s1
    513 
    514     ; CHECK-LABEL: name: test_fcmp_olt_s32
    515     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    516     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    517     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    518     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    519     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    520     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 4, $cpsr
    521     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    522     ; CHECK: $r0 = COPY [[ANDri]]
    523     ; CHECK: BX_RET 14, $noreg, implicit $r0
    524     %0(s32) = COPY $s0
    525     %1(s32) = COPY $s1
    526     %2(s1) = G_FCMP floatpred(olt),  %0(s32), %1
    527     %3(s32) = G_ZEXT %2(s1)
    528     $r0 = COPY %3(s32)
    529     BX_RET 14, $noreg, implicit $r0
    530 ...
    531 ---
    532 name:            test_fcmp_ole_s32
    533 legalized:       true
    534 regBankSelected: true
    535 selected:        false
    536 registers:
    537   - { id: 0, class: fprb }
    538   - { id: 1, class: fprb }
    539   - { id: 2, class: gprb }
    540   - { id: 3, class: gprb }
    541 body:             |
    542   bb.0:
    543     liveins: $s0, $s1
    544 
    545     ; CHECK-LABEL: name: test_fcmp_ole_s32
    546     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    547     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    548     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    549     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    550     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    551     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9, $cpsr
    552     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    553     ; CHECK: $r0 = COPY [[ANDri]]
    554     ; CHECK: BX_RET 14, $noreg, implicit $r0
    555     %0(s32) = COPY $s0
    556     %1(s32) = COPY $s1
    557     %2(s1) = G_FCMP floatpred(ole),  %0(s32), %1
    558     %3(s32) = G_ZEXT %2(s1)
    559     $r0 = COPY %3(s32)
    560     BX_RET 14, $noreg, implicit $r0
    561 ...
    562 ---
    563 name:            test_fcmp_ord_s32
    564 legalized:       true
    565 regBankSelected: true
    566 selected:        false
    567 registers:
    568   - { id: 0, class: fprb }
    569   - { id: 1, class: fprb }
    570   - { id: 2, class: gprb }
    571   - { id: 3, class: gprb }
    572 body:             |
    573   bb.0:
    574     liveins: $s0, $s1
    575 
    576     ; CHECK-LABEL: name: test_fcmp_ord_s32
    577     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    578     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    579     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    580     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    581     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    582     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 7, $cpsr
    583     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    584     ; CHECK: $r0 = COPY [[ANDri]]
    585     ; CHECK: BX_RET 14, $noreg, implicit $r0
    586     %0(s32) = COPY $s0
    587     %1(s32) = COPY $s1
    588     %2(s1) = G_FCMP floatpred(ord),  %0(s32), %1
    589     %3(s32) = G_ZEXT %2(s1)
    590     $r0 = COPY %3(s32)
    591     BX_RET 14, $noreg, implicit $r0
    592 ...
    593 ---
    594 name:            test_fcmp_ugt_s32
    595 legalized:       true
    596 regBankSelected: true
    597 selected:        false
    598 registers:
    599   - { id: 0, class: fprb }
    600   - { id: 1, class: fprb }
    601   - { id: 2, class: gprb }
    602   - { id: 3, class: gprb }
    603 body:             |
    604   bb.0:
    605     liveins: $s0, $s1
    606 
    607     ; CHECK-LABEL: name: test_fcmp_ugt_s32
    608     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    609     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    610     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    611     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    612     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    613     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8, $cpsr
    614     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    615     ; CHECK: $r0 = COPY [[ANDri]]
    616     ; CHECK: BX_RET 14, $noreg, implicit $r0
    617     %0(s32) = COPY $s0
    618     %1(s32) = COPY $s1
    619     %2(s1) = G_FCMP floatpred(ugt),  %0(s32), %1
    620     %3(s32) = G_ZEXT %2(s1)
    621     $r0 = COPY %3(s32)
    622     BX_RET 14, $noreg, implicit $r0
    623 ...
    624 ---
    625 name:            test_fcmp_uge_s32
    626 legalized:       true
    627 regBankSelected: true
    628 selected:        false
    629 registers:
    630   - { id: 0, class: fprb }
    631   - { id: 1, class: fprb }
    632   - { id: 2, class: gprb }
    633   - { id: 3, class: gprb }
    634 body:             |
    635   bb.0:
    636     liveins: $s0, $s1
    637 
    638     ; CHECK-LABEL: name: test_fcmp_uge_s32
    639     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    640     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    641     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    642     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    643     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    644     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 5, $cpsr
    645     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    646     ; CHECK: $r0 = COPY [[ANDri]]
    647     ; CHECK: BX_RET 14, $noreg, implicit $r0
    648     %0(s32) = COPY $s0
    649     %1(s32) = COPY $s1
    650     %2(s1) = G_FCMP floatpred(uge),  %0(s32), %1
    651     %3(s32) = G_ZEXT %2(s1)
    652     $r0 = COPY %3(s32)
    653     BX_RET 14, $noreg, implicit $r0
    654 ...
    655 ---
    656 name:            test_fcmp_ult_s32
    657 legalized:       true
    658 regBankSelected: true
    659 selected:        false
    660 registers:
    661   - { id: 0, class: fprb }
    662   - { id: 1, class: fprb }
    663   - { id: 2, class: gprb }
    664   - { id: 3, class: gprb }
    665 body:             |
    666   bb.0:
    667     liveins: $s0, $s1
    668 
    669     ; CHECK-LABEL: name: test_fcmp_ult_s32
    670     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    671     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    672     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    673     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    674     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    675     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11, $cpsr
    676     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    677     ; CHECK: $r0 = COPY [[ANDri]]
    678     ; CHECK: BX_RET 14, $noreg, implicit $r0
    679     %0(s32) = COPY $s0
    680     %1(s32) = COPY $s1
    681     %2(s1) = G_FCMP floatpred(ult),  %0(s32), %1
    682     %3(s32) = G_ZEXT %2(s1)
    683     $r0 = COPY %3(s32)
    684     BX_RET 14, $noreg, implicit $r0
    685 ...
    686 ---
    687 name:            test_fcmp_ule_s32
    688 legalized:       true
    689 regBankSelected: true
    690 selected:        false
    691 registers:
    692   - { id: 0, class: fprb }
    693   - { id: 1, class: fprb }
    694   - { id: 2, class: gprb }
    695   - { id: 3, class: gprb }
    696 body:             |
    697   bb.0:
    698     liveins: $s0, $s1
    699 
    700     ; CHECK-LABEL: name: test_fcmp_ule_s32
    701     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    702     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    703     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    704     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    705     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    706     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13, $cpsr
    707     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    708     ; CHECK: $r0 = COPY [[ANDri]]
    709     ; CHECK: BX_RET 14, $noreg, implicit $r0
    710     %0(s32) = COPY $s0
    711     %1(s32) = COPY $s1
    712     %2(s1) = G_FCMP floatpred(ule),  %0(s32), %1
    713     %3(s32) = G_ZEXT %2(s1)
    714     $r0 = COPY %3(s32)
    715     BX_RET 14, $noreg, implicit $r0
    716 ...
    717 ---
    718 name:            test_fcmp_une_s32
    719 legalized:       true
    720 regBankSelected: true
    721 selected:        false
    722 registers:
    723   - { id: 0, class: fprb }
    724   - { id: 1, class: fprb }
    725   - { id: 2, class: gprb }
    726   - { id: 3, class: gprb }
    727 body:             |
    728   bb.0:
    729     liveins: $s0, $s1
    730 
    731     ; CHECK-LABEL: name: test_fcmp_une_s32
    732     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    733     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    734     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    735     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    736     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    737     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1, $cpsr
    738     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    739     ; CHECK: $r0 = COPY [[ANDri]]
    740     ; CHECK: BX_RET 14, $noreg, implicit $r0
    741     %0(s32) = COPY $s0
    742     %1(s32) = COPY $s1
    743     %2(s1) = G_FCMP floatpred(une),  %0(s32), %1
    744     %3(s32) = G_ZEXT %2(s1)
    745     $r0 = COPY %3(s32)
    746     BX_RET 14, $noreg, implicit $r0
    747 ...
    748 ---
    749 name:            test_fcmp_uno_s32
    750 legalized:       true
    751 regBankSelected: true
    752 selected:        false
    753 registers:
    754   - { id: 0, class: fprb }
    755   - { id: 1, class: fprb }
    756   - { id: 2, class: gprb }
    757   - { id: 3, class: gprb }
    758 body:             |
    759   bb.0:
    760     liveins: $s0, $s1
    761 
    762     ; CHECK-LABEL: name: test_fcmp_uno_s32
    763     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    764     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    765     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    766     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    767     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    768     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 6, $cpsr
    769     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    770     ; CHECK: $r0 = COPY [[ANDri]]
    771     ; CHECK: BX_RET 14, $noreg, implicit $r0
    772     %0(s32) = COPY $s0
    773     %1(s32) = COPY $s1
    774     %2(s1) = G_FCMP floatpred(uno),  %0(s32), %1
    775     %3(s32) = G_ZEXT %2(s1)
    776     $r0 = COPY %3(s32)
    777     BX_RET 14, $noreg, implicit $r0
    778 ...
    779 ---
    780 name:            test_fcmp_one_s32
    781 legalized:       true
    782 regBankSelected: true
    783 selected:        false
    784 registers:
    785   - { id: 0, class: fprb }
    786   - { id: 1, class: fprb }
    787   - { id: 2, class: gprb }
    788   - { id: 3, class: gprb }
    789 body:             |
    790   bb.0:
    791     liveins: $s0, $s1
    792 
    793     ; CHECK-LABEL: name: test_fcmp_one_s32
    794     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    795     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    796     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    797     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    798     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    799     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12, $cpsr
    800     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    801     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    802     ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 4, $cpsr
    803     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14, $noreg, $noreg
    804     ; CHECK: $r0 = COPY [[ANDri]]
    805     ; CHECK: BX_RET 14, $noreg, implicit $r0
    806     %0(s32) = COPY $s0
    807     %1(s32) = COPY $s1
    808     %2(s1) = G_FCMP floatpred(one),  %0(s32), %1
    809     %3(s32) = G_ZEXT %2(s1)
    810     $r0 = COPY %3(s32)
    811     BX_RET 14, $noreg, implicit $r0
    812 ...
    813 ---
    814 name:            test_fcmp_ueq_s32
    815 legalized:       true
    816 regBankSelected: true
    817 selected:        false
    818 registers:
    819   - { id: 0, class: fprb }
    820   - { id: 1, class: fprb }
    821   - { id: 2, class: gprb }
    822   - { id: 3, class: gprb }
    823 body:             |
    824   bb.0:
    825     liveins: $s0, $s1
    826 
    827     ; CHECK-LABEL: name: test_fcmp_ueq_s32
    828     ; CHECK: [[COPY:%[0-9]+]]:spr = COPY $s0
    829     ; CHECK: [[COPY1:%[0-9]+]]:spr = COPY $s1
    830     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    831     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    832     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    833     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0, $cpsr
    834     ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    835     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    836     ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 6, $cpsr
    837     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14, $noreg, $noreg
    838     ; CHECK: $r0 = COPY [[ANDri]]
    839     ; CHECK: BX_RET 14, $noreg, implicit $r0
    840     %0(s32) = COPY $s0
    841     %1(s32) = COPY $s1
    842     %2(s1) = G_FCMP floatpred(ueq),  %0(s32), %1
    843     %3(s32) = G_ZEXT %2(s1)
    844     $r0 = COPY %3(s32)
    845     BX_RET 14, $noreg, implicit $r0
    846 ...
    847 ---
    848 name:            test_fcmp_true_s64
    849 legalized:       true
    850 regBankSelected: true
    851 selected:        false
    852 registers:
    853   - { id: 0, class: fprb }
    854   - { id: 1, class: fprb }
    855   - { id: 2, class: gprb }
    856   - { id: 3, class: gprb }
    857 body:             |
    858   bb.0:
    859     liveins: $d0, $d1
    860 
    861     ; CHECK-LABEL: name: test_fcmp_true_s64
    862     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 1, 14, $noreg, $noreg
    863     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14, $noreg, $noreg
    864     ; CHECK: $r0 = COPY [[ANDri]]
    865     ; CHECK: BX_RET 14, $noreg, implicit $r0
    866     %0(s64) = COPY $d0
    867     %1(s64) = COPY $d1
    868     %2(s1) = G_FCMP floatpred(true),  %0(s64), %1
    869     %3(s32) = G_ZEXT %2(s1)
    870     $r0 = COPY %3(s32)
    871     BX_RET 14, $noreg, implicit $r0
    872 ...
    873 ---
    874 name:            test_fcmp_false_s64
    875 legalized:       true
    876 regBankSelected: true
    877 selected:        false
    878 registers:
    879   - { id: 0, class: fprb }
    880   - { id: 1, class: fprb }
    881   - { id: 2, class: gprb }
    882   - { id: 3, class: gprb }
    883 body:             |
    884   bb.0:
    885     liveins: $d0, $d1
    886 
    887     ; CHECK-LABEL: name: test_fcmp_false_s64
    888     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    889     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVi]], 1, 14, $noreg, $noreg
    890     ; CHECK: $r0 = COPY [[ANDri]]
    891     ; CHECK: BX_RET 14, $noreg, implicit $r0
    892     %0(s64) = COPY $d0
    893     %1(s64) = COPY $d1
    894     %2(s1) = G_FCMP floatpred(false),  %0(s64), %1
    895     %3(s32) = G_ZEXT %2(s1)
    896     $r0 = COPY %3(s32)
    897     BX_RET 14, $noreg, implicit $r0
    898 ...
    899 ---
    900 name:            test_fcmp_oeq_s64
    901 legalized:       true
    902 regBankSelected: true
    903 selected:        false
    904 registers:
    905   - { id: 0, class: fprb }
    906   - { id: 1, class: fprb }
    907   - { id: 2, class: gprb }
    908   - { id: 3, class: gprb }
    909 body:             |
    910   bb.0:
    911     liveins: $d0, $d1
    912 
    913     ; CHECK-LABEL: name: test_fcmp_oeq_s64
    914     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
    915     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
    916     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    917     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    918     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    919     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0, $cpsr
    920     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    921     ; CHECK: $r0 = COPY [[ANDri]]
    922     ; CHECK: BX_RET 14, $noreg, implicit $r0
    923     %0(s64) = COPY $d0
    924     %1(s64) = COPY $d1
    925     %2(s1) = G_FCMP floatpred(oeq),  %0(s64), %1
    926     %3(s32) = G_ZEXT %2(s1)
    927     $r0 = COPY %3(s32)
    928     BX_RET 14, $noreg, implicit $r0
    929 ...
    930 ---
    931 name:            test_fcmp_ogt_s64
    932 legalized:       true
    933 regBankSelected: true
    934 selected:        false
    935 registers:
    936   - { id: 0, class: fprb }
    937   - { id: 1, class: fprb }
    938   - { id: 2, class: gprb }
    939   - { id: 3, class: gprb }
    940 body:             |
    941   bb.0:
    942     liveins: $d0, $d1
    943 
    944     ; CHECK-LABEL: name: test_fcmp_ogt_s64
    945     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
    946     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
    947     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    948     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    949     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    950     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12, $cpsr
    951     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    952     ; CHECK: $r0 = COPY [[ANDri]]
    953     ; CHECK: BX_RET 14, $noreg, implicit $r0
    954     %0(s64) = COPY $d0
    955     %1(s64) = COPY $d1
    956     %2(s1) = G_FCMP floatpred(ogt),  %0(s64), %1
    957     %3(s32) = G_ZEXT %2(s1)
    958     $r0 = COPY %3(s32)
    959     BX_RET 14, $noreg, implicit $r0
    960 ...
    961 ---
    962 name:            test_fcmp_oge_s64
    963 legalized:       true
    964 regBankSelected: true
    965 selected:        false
    966 registers:
    967   - { id: 0, class: fprb }
    968   - { id: 1, class: fprb }
    969   - { id: 2, class: gprb }
    970   - { id: 3, class: gprb }
    971 body:             |
    972   bb.0:
    973     liveins: $d0, $d1
    974 
    975     ; CHECK-LABEL: name: test_fcmp_oge_s64
    976     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
    977     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
    978     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
    979     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
    980     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
    981     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 10, $cpsr
    982     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
    983     ; CHECK: $r0 = COPY [[ANDri]]
    984     ; CHECK: BX_RET 14, $noreg, implicit $r0
    985     %0(s64) = COPY $d0
    986     %1(s64) = COPY $d1
    987     %2(s1) = G_FCMP floatpred(oge),  %0(s64), %1
    988     %3(s32) = G_ZEXT %2(s1)
    989     $r0 = COPY %3(s32)
    990     BX_RET 14, $noreg, implicit $r0
    991 ...
    992 ---
    993 name:            test_fcmp_olt_s64
    994 legalized:       true
    995 regBankSelected: true
    996 selected:        false
    997 registers:
    998   - { id: 0, class: fprb }
    999   - { id: 1, class: fprb }
   1000   - { id: 2, class: gprb }
   1001   - { id: 3, class: gprb }
   1002 body:             |
   1003   bb.0:
   1004     liveins: $d0, $d1
   1005 
   1006     ; CHECK-LABEL: name: test_fcmp_olt_s64
   1007     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1008     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1009     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1010     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1011     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1012     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 4, $cpsr
   1013     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1014     ; CHECK: $r0 = COPY [[ANDri]]
   1015     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1016     %0(s64) = COPY $d0
   1017     %1(s64) = COPY $d1
   1018     %2(s1) = G_FCMP floatpred(olt),  %0(s64), %1
   1019     %3(s32) = G_ZEXT %2(s1)
   1020     $r0 = COPY %3(s32)
   1021     BX_RET 14, $noreg, implicit $r0
   1022 ...
   1023 ---
   1024 name:            test_fcmp_ole_s64
   1025 legalized:       true
   1026 regBankSelected: true
   1027 selected:        false
   1028 registers:
   1029   - { id: 0, class: fprb }
   1030   - { id: 1, class: fprb }
   1031   - { id: 2, class: gprb }
   1032   - { id: 3, class: gprb }
   1033 body:             |
   1034   bb.0:
   1035     liveins: $d0, $d1
   1036 
   1037     ; CHECK-LABEL: name: test_fcmp_ole_s64
   1038     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1039     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1040     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1041     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1042     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1043     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 9, $cpsr
   1044     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1045     ; CHECK: $r0 = COPY [[ANDri]]
   1046     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1047     %0(s64) = COPY $d0
   1048     %1(s64) = COPY $d1
   1049     %2(s1) = G_FCMP floatpred(ole),  %0(s64), %1
   1050     %3(s32) = G_ZEXT %2(s1)
   1051     $r0 = COPY %3(s32)
   1052     BX_RET 14, $noreg, implicit $r0
   1053 ...
   1054 ---
   1055 name:            test_fcmp_ord_s64
   1056 legalized:       true
   1057 regBankSelected: true
   1058 selected:        false
   1059 registers:
   1060   - { id: 0, class: fprb }
   1061   - { id: 1, class: fprb }
   1062   - { id: 2, class: gprb }
   1063   - { id: 3, class: gprb }
   1064 body:             |
   1065   bb.0:
   1066     liveins: $d0, $d1
   1067 
   1068     ; CHECK-LABEL: name: test_fcmp_ord_s64
   1069     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1070     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1071     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1072     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1073     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1074     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 7, $cpsr
   1075     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1076     ; CHECK: $r0 = COPY [[ANDri]]
   1077     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1078     %0(s64) = COPY $d0
   1079     %1(s64) = COPY $d1
   1080     %2(s1) = G_FCMP floatpred(ord),  %0(s64), %1
   1081     %3(s32) = G_ZEXT %2(s1)
   1082     $r0 = COPY %3(s32)
   1083     BX_RET 14, $noreg, implicit $r0
   1084 ...
   1085 ---
   1086 name:            test_fcmp_ugt_s64
   1087 legalized:       true
   1088 regBankSelected: true
   1089 selected:        false
   1090 registers:
   1091   - { id: 0, class: fprb }
   1092   - { id: 1, class: fprb }
   1093   - { id: 2, class: gprb }
   1094   - { id: 3, class: gprb }
   1095 body:             |
   1096   bb.0:
   1097     liveins: $d0, $d1
   1098 
   1099     ; CHECK-LABEL: name: test_fcmp_ugt_s64
   1100     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1101     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1102     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1103     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1104     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1105     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 8, $cpsr
   1106     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1107     ; CHECK: $r0 = COPY [[ANDri]]
   1108     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1109     %0(s64) = COPY $d0
   1110     %1(s64) = COPY $d1
   1111     %2(s1) = G_FCMP floatpred(ugt),  %0(s64), %1
   1112     %3(s32) = G_ZEXT %2(s1)
   1113     $r0 = COPY %3(s32)
   1114     BX_RET 14, $noreg, implicit $r0
   1115 ...
   1116 ---
   1117 name:            test_fcmp_uge_s64
   1118 legalized:       true
   1119 regBankSelected: true
   1120 selected:        false
   1121 registers:
   1122   - { id: 0, class: fprb }
   1123   - { id: 1, class: fprb }
   1124   - { id: 2, class: gprb }
   1125   - { id: 3, class: gprb }
   1126 body:             |
   1127   bb.0:
   1128     liveins: $d0, $d1
   1129 
   1130     ; CHECK-LABEL: name: test_fcmp_uge_s64
   1131     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1132     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1133     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1134     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1135     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1136     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 5, $cpsr
   1137     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1138     ; CHECK: $r0 = COPY [[ANDri]]
   1139     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1140     %0(s64) = COPY $d0
   1141     %1(s64) = COPY $d1
   1142     %2(s1) = G_FCMP floatpred(uge),  %0(s64), %1
   1143     %3(s32) = G_ZEXT %2(s1)
   1144     $r0 = COPY %3(s32)
   1145     BX_RET 14, $noreg, implicit $r0
   1146 ...
   1147 ---
   1148 name:            test_fcmp_ult_s64
   1149 legalized:       true
   1150 regBankSelected: true
   1151 selected:        false
   1152 registers:
   1153   - { id: 0, class: fprb }
   1154   - { id: 1, class: fprb }
   1155   - { id: 2, class: gprb }
   1156   - { id: 3, class: gprb }
   1157 body:             |
   1158   bb.0:
   1159     liveins: $d0, $d1
   1160 
   1161     ; CHECK-LABEL: name: test_fcmp_ult_s64
   1162     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1163     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1164     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1165     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1166     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1167     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 11, $cpsr
   1168     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1169     ; CHECK: $r0 = COPY [[ANDri]]
   1170     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1171     %0(s64) = COPY $d0
   1172     %1(s64) = COPY $d1
   1173     %2(s1) = G_FCMP floatpred(ult),  %0(s64), %1
   1174     %3(s32) = G_ZEXT %2(s1)
   1175     $r0 = COPY %3(s32)
   1176     BX_RET 14, $noreg, implicit $r0
   1177 ...
   1178 ---
   1179 name:            test_fcmp_ule_s64
   1180 legalized:       true
   1181 regBankSelected: true
   1182 selected:        false
   1183 registers:
   1184   - { id: 0, class: fprb }
   1185   - { id: 1, class: fprb }
   1186   - { id: 2, class: gprb }
   1187   - { id: 3, class: gprb }
   1188 body:             |
   1189   bb.0:
   1190     liveins: $d0, $d1
   1191 
   1192     ; CHECK-LABEL: name: test_fcmp_ule_s64
   1193     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1194     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1195     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1196     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1197     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1198     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 13, $cpsr
   1199     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1200     ; CHECK: $r0 = COPY [[ANDri]]
   1201     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1202     %0(s64) = COPY $d0
   1203     %1(s64) = COPY $d1
   1204     %2(s1) = G_FCMP floatpred(ule),  %0(s64), %1
   1205     %3(s32) = G_ZEXT %2(s1)
   1206     $r0 = COPY %3(s32)
   1207     BX_RET 14, $noreg, implicit $r0
   1208 ...
   1209 ---
   1210 name:            test_fcmp_une_s64
   1211 legalized:       true
   1212 regBankSelected: true
   1213 selected:        false
   1214 registers:
   1215   - { id: 0, class: fprb }
   1216   - { id: 1, class: fprb }
   1217   - { id: 2, class: gprb }
   1218   - { id: 3, class: gprb }
   1219 body:             |
   1220   bb.0:
   1221     liveins: $d0, $d1
   1222 
   1223     ; CHECK-LABEL: name: test_fcmp_une_s64
   1224     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1225     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1226     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1227     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1228     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1229     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 1, $cpsr
   1230     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1231     ; CHECK: $r0 = COPY [[ANDri]]
   1232     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1233     %0(s64) = COPY $d0
   1234     %1(s64) = COPY $d1
   1235     %2(s1) = G_FCMP floatpred(une),  %0(s64), %1
   1236     %3(s32) = G_ZEXT %2(s1)
   1237     $r0 = COPY %3(s32)
   1238     BX_RET 14, $noreg, implicit $r0
   1239 ...
   1240 ---
   1241 name:            test_fcmp_uno_s64
   1242 legalized:       true
   1243 regBankSelected: true
   1244 selected:        false
   1245 registers:
   1246   - { id: 0, class: fprb }
   1247   - { id: 1, class: fprb }
   1248   - { id: 2, class: gprb }
   1249   - { id: 3, class: gprb }
   1250 body:             |
   1251   bb.0:
   1252     liveins: $d0, $d1
   1253 
   1254     ; CHECK-LABEL: name: test_fcmp_uno_s64
   1255     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1256     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1257     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1258     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1259     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1260     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 6, $cpsr
   1261     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi]], 1, 14, $noreg, $noreg
   1262     ; CHECK: $r0 = COPY [[ANDri]]
   1263     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1264     %0(s64) = COPY $d0
   1265     %1(s64) = COPY $d1
   1266     %2(s1) = G_FCMP floatpred(uno),  %0(s64), %1
   1267     %3(s32) = G_ZEXT %2(s1)
   1268     $r0 = COPY %3(s32)
   1269     BX_RET 14, $noreg, implicit $r0
   1270 ...
   1271 ---
   1272 name:            test_fcmp_one_s64
   1273 legalized:       true
   1274 regBankSelected: true
   1275 selected:        false
   1276 registers:
   1277   - { id: 0, class: fprb }
   1278   - { id: 1, class: fprb }
   1279   - { id: 2, class: gprb }
   1280   - { id: 3, class: gprb }
   1281 body:             |
   1282   bb.0:
   1283     liveins: $d0, $d1
   1284 
   1285     ; CHECK-LABEL: name: test_fcmp_one_s64
   1286     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1287     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1288     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1289     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1290     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1291     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 12, $cpsr
   1292     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1293     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1294     ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 4, $cpsr
   1295     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14, $noreg, $noreg
   1296     ; CHECK: $r0 = COPY [[ANDri]]
   1297     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1298     %0(s64) = COPY $d0
   1299     %1(s64) = COPY $d1
   1300     %2(s1) = G_FCMP floatpred(one),  %0(s64), %1
   1301     %3(s32) = G_ZEXT %2(s1)
   1302     $r0 = COPY %3(s32)
   1303     BX_RET 14, $noreg, implicit $r0
   1304 ...
   1305 ---
   1306 name:            test_fcmp_ueq_s64
   1307 legalized:       true
   1308 regBankSelected: true
   1309 selected:        false
   1310 registers:
   1311   - { id: 0, class: fprb }
   1312   - { id: 1, class: fprb }
   1313   - { id: 2, class: gprb }
   1314   - { id: 3, class: gprb }
   1315 body:             |
   1316   bb.0:
   1317     liveins: $d0, $d1
   1318 
   1319     ; CHECK-LABEL: name: test_fcmp_ueq_s64
   1320     ; CHECK: [[COPY:%[0-9]+]]:dpr = COPY $d0
   1321     ; CHECK: [[COPY1:%[0-9]+]]:dpr = COPY $d1
   1322     ; CHECK: [[MOVi:%[0-9]+]]:gpr = MOVi 0, 14, $noreg, $noreg
   1323     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1324     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1325     ; CHECK: [[MOVCCi:%[0-9]+]]:gpr = MOVCCi [[MOVi]], 1, 0, $cpsr
   1326     ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, $noreg, implicit-def $fpscr_nzcv
   1327     ; CHECK: FMSTAT 14, $noreg, implicit-def $cpsr, implicit $fpscr_nzcv
   1328     ; CHECK: [[MOVCCi1:%[0-9]+]]:gpr = MOVCCi [[MOVCCi]], 1, 6, $cpsr
   1329     ; CHECK: [[ANDri:%[0-9]+]]:gpr = ANDri [[MOVCCi1]], 1, 14, $noreg, $noreg
   1330     ; CHECK: $r0 = COPY [[ANDri]]
   1331     ; CHECK: BX_RET 14, $noreg, implicit $r0
   1332     %0(s64) = COPY $d0
   1333     %1(s64) = COPY $d1
   1334     %2(s1) = G_FCMP floatpred(ueq),  %0(s64), %1
   1335     %3(s32) = G_ZEXT %2(s1)
   1336     $r0 = COPY %3(s32)
   1337     BX_RET 14, $noreg, implicit $r0
   1338 ...
   1339