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