584 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=instruction-select -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s3#4# Test that we don't have to emit a CSINC when emitting a G_FCMP being used by5# a G_BRCOND.6#7# Condition codes which require more than one instruction should have two Bccs.8 9...10---11name: oeq12legalized: true13regBankSelected: true14tracksRegLiveness: true15body: |16 ; CHECK-LABEL: name: oeq17 ; CHECK: bb.0:18 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)19 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w120 ; CHECK-NEXT: {{ $}}21 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s022 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s123 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr24 ; CHECK-NEXT: Bcc 0, %bb.2, implicit $nzcv25 ; CHECK-NEXT: B %bb.126 ; CHECK-NEXT: {{ $}}27 ; CHECK-NEXT: bb.1:28 ; CHECK-NEXT: $s0 = COPY %cmp_lhs29 ; CHECK-NEXT: RET_ReallyLR implicit $s030 ; CHECK-NEXT: {{ $}}31 ; CHECK-NEXT: bb.2:32 ; CHECK-NEXT: $s1 = COPY %cmp_rhs33 ; CHECK-NEXT: RET_ReallyLR implicit $s134 bb.0:35 successors: %bb.1(0x50000000), %bb.2(0x30000000)36 liveins: $s0, $s1, $w0, $w137 38 %cmp_lhs:fpr(s32) = COPY $s039 %cmp_rhs:fpr(s32) = COPY $s140 %fcmp:gpr(s32) = G_FCMP floatpred(oeq), %cmp_lhs(s32), %cmp_rhs41 G_BRCOND %fcmp, %bb.242 G_BR %bb.143 bb.1:44 $s0 = COPY %cmp_lhs45 RET_ReallyLR implicit $s046 bb.2:47 $s1 = COPY %cmp_rhs48 RET_ReallyLR implicit $s149 50...51---52name: ogt53legalized: true54regBankSelected: true55tracksRegLiveness: true56body: |57 ; CHECK-LABEL: name: ogt58 ; CHECK: bb.0:59 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)60 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w161 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s063 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s164 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr65 ; CHECK-NEXT: Bcc 12, %bb.2, implicit $nzcv66 ; CHECK-NEXT: B %bb.167 ; CHECK-NEXT: {{ $}}68 ; CHECK-NEXT: bb.1:69 ; CHECK-NEXT: $s0 = COPY %cmp_lhs70 ; CHECK-NEXT: RET_ReallyLR implicit $s071 ; CHECK-NEXT: {{ $}}72 ; CHECK-NEXT: bb.2:73 ; CHECK-NEXT: $s1 = COPY %cmp_rhs74 ; CHECK-NEXT: RET_ReallyLR implicit $s175 bb.0:76 successors: %bb.1(0x50000000), %bb.2(0x30000000)77 liveins: $s0, $s1, $w0, $w178 79 %cmp_lhs:fpr(s32) = COPY $s080 %cmp_rhs:fpr(s32) = COPY $s181 %fcmp:gpr(s32) = G_FCMP floatpred(ogt), %cmp_lhs(s32), %cmp_rhs82 G_BRCOND %fcmp, %bb.283 G_BR %bb.184 bb.1:85 $s0 = COPY %cmp_lhs86 RET_ReallyLR implicit $s087 bb.2:88 $s1 = COPY %cmp_rhs89 RET_ReallyLR implicit $s190 91...92---93name: oge94legalized: true95regBankSelected: true96tracksRegLiveness: true97body: |98 ; CHECK-LABEL: name: oge99 ; CHECK: bb.0:100 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)101 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1102 ; CHECK-NEXT: {{ $}}103 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0104 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1105 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr106 ; CHECK-NEXT: Bcc 10, %bb.2, implicit $nzcv107 ; CHECK-NEXT: B %bb.1108 ; CHECK-NEXT: {{ $}}109 ; CHECK-NEXT: bb.1:110 ; CHECK-NEXT: $s0 = COPY %cmp_lhs111 ; CHECK-NEXT: RET_ReallyLR implicit $s0112 ; CHECK-NEXT: {{ $}}113 ; CHECK-NEXT: bb.2:114 ; CHECK-NEXT: $s1 = COPY %cmp_rhs115 ; CHECK-NEXT: RET_ReallyLR implicit $s1116 bb.0:117 successors: %bb.1(0x50000000), %bb.2(0x30000000)118 liveins: $s0, $s1, $w0, $w1119 120 %cmp_lhs:fpr(s32) = COPY $s0121 %cmp_rhs:fpr(s32) = COPY $s1122 %fcmp:gpr(s32) = G_FCMP floatpred(oge), %cmp_lhs(s32), %cmp_rhs123 G_BRCOND %fcmp, %bb.2124 G_BR %bb.1125 bb.1:126 $s0 = COPY %cmp_lhs127 RET_ReallyLR implicit $s0128 bb.2:129 $s1 = COPY %cmp_rhs130 RET_ReallyLR implicit $s1131 132...133---134name: olt135legalized: true136regBankSelected: true137tracksRegLiveness: true138body: |139 ; CHECK-LABEL: name: olt140 ; CHECK: bb.0:141 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)142 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1143 ; CHECK-NEXT: {{ $}}144 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0145 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1146 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr147 ; CHECK-NEXT: Bcc 4, %bb.2, implicit $nzcv148 ; CHECK-NEXT: B %bb.1149 ; CHECK-NEXT: {{ $}}150 ; CHECK-NEXT: bb.1:151 ; CHECK-NEXT: $s0 = COPY %cmp_lhs152 ; CHECK-NEXT: RET_ReallyLR implicit $s0153 ; CHECK-NEXT: {{ $}}154 ; CHECK-NEXT: bb.2:155 ; CHECK-NEXT: $s1 = COPY %cmp_rhs156 ; CHECK-NEXT: RET_ReallyLR implicit $s1157 bb.0:158 successors: %bb.1(0x50000000), %bb.2(0x30000000)159 liveins: $s0, $s1, $w0, $w1160 161 %cmp_lhs:fpr(s32) = COPY $s0162 %cmp_rhs:fpr(s32) = COPY $s1163 %fcmp:gpr(s32) = G_FCMP floatpred(olt), %cmp_lhs(s32), %cmp_rhs164 G_BRCOND %fcmp, %bb.2165 G_BR %bb.1166 bb.1:167 $s0 = COPY %cmp_lhs168 RET_ReallyLR implicit $s0169 bb.2:170 $s1 = COPY %cmp_rhs171 RET_ReallyLR implicit $s1172 173...174---175name: ole176legalized: true177regBankSelected: true178tracksRegLiveness: true179body: |180 ; CHECK-LABEL: name: ole181 ; CHECK: bb.0:182 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)183 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1184 ; CHECK-NEXT: {{ $}}185 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0186 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1187 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr188 ; CHECK-NEXT: Bcc 9, %bb.2, implicit $nzcv189 ; CHECK-NEXT: B %bb.1190 ; CHECK-NEXT: {{ $}}191 ; CHECK-NEXT: bb.1:192 ; CHECK-NEXT: $s0 = COPY %cmp_lhs193 ; CHECK-NEXT: RET_ReallyLR implicit $s0194 ; CHECK-NEXT: {{ $}}195 ; CHECK-NEXT: bb.2:196 ; CHECK-NEXT: $s1 = COPY %cmp_rhs197 ; CHECK-NEXT: RET_ReallyLR implicit $s1198 bb.0:199 successors: %bb.1(0x50000000), %bb.2(0x30000000)200 liveins: $s0, $s1, $w0, $w1201 202 %cmp_lhs:fpr(s32) = COPY $s0203 %cmp_rhs:fpr(s32) = COPY $s1204 %fcmp:gpr(s32) = G_FCMP floatpred(ole), %cmp_lhs(s32), %cmp_rhs205 G_BRCOND %fcmp, %bb.2206 G_BR %bb.1207 bb.1:208 $s0 = COPY %cmp_lhs209 RET_ReallyLR implicit $s0210 bb.2:211 $s1 = COPY %cmp_rhs212 RET_ReallyLR implicit $s1213 214...215---216name: one217legalized: true218regBankSelected: true219tracksRegLiveness: true220body: |221 ; CHECK-LABEL: name: one222 ; CHECK: bb.0:223 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)224 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1225 ; CHECK-NEXT: {{ $}}226 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0227 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1228 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr229 ; CHECK-NEXT: Bcc 4, %bb.2, implicit $nzcv230 ; CHECK-NEXT: Bcc 12, %bb.2, implicit $nzcv231 ; CHECK-NEXT: B %bb.1232 ; CHECK-NEXT: {{ $}}233 ; CHECK-NEXT: bb.1:234 ; CHECK-NEXT: $s0 = COPY %cmp_lhs235 ; CHECK-NEXT: RET_ReallyLR implicit $s0236 ; CHECK-NEXT: {{ $}}237 ; CHECK-NEXT: bb.2:238 ; CHECK-NEXT: $s1 = COPY %cmp_rhs239 ; CHECK-NEXT: RET_ReallyLR implicit $s1240 bb.0:241 successors: %bb.1(0x50000000), %bb.2(0x30000000)242 liveins: $s0, $s1, $w0, $w1243 244 %cmp_lhs:fpr(s32) = COPY $s0245 %cmp_rhs:fpr(s32) = COPY $s1246 %fcmp:gpr(s32) = G_FCMP floatpred(one), %cmp_lhs(s32), %cmp_rhs247 G_BRCOND %fcmp, %bb.2248 G_BR %bb.1249 bb.1:250 $s0 = COPY %cmp_lhs251 RET_ReallyLR implicit $s0252 bb.2:253 $s1 = COPY %cmp_rhs254 RET_ReallyLR implicit $s1255 256...257---258name: ord259legalized: true260regBankSelected: true261tracksRegLiveness: true262body: |263 ; CHECK-LABEL: name: ord264 ; CHECK: bb.0:265 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)266 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1267 ; CHECK-NEXT: {{ $}}268 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0269 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1270 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr271 ; CHECK-NEXT: Bcc 7, %bb.2, implicit $nzcv272 ; CHECK-NEXT: B %bb.1273 ; CHECK-NEXT: {{ $}}274 ; CHECK-NEXT: bb.1:275 ; CHECK-NEXT: $s0 = COPY %cmp_lhs276 ; CHECK-NEXT: RET_ReallyLR implicit $s0277 ; CHECK-NEXT: {{ $}}278 ; CHECK-NEXT: bb.2:279 ; CHECK-NEXT: $s1 = COPY %cmp_rhs280 ; CHECK-NEXT: RET_ReallyLR implicit $s1281 bb.0:282 successors: %bb.1(0x50000000), %bb.2(0x30000000)283 liveins: $s0, $s1, $w0, $w1284 285 %cmp_lhs:fpr(s32) = COPY $s0286 %cmp_rhs:fpr(s32) = COPY $s1287 %fcmp:gpr(s32) = G_FCMP floatpred(ord), %cmp_lhs(s32), %cmp_rhs288 G_BRCOND %fcmp, %bb.2289 G_BR %bb.1290 bb.1:291 $s0 = COPY %cmp_lhs292 RET_ReallyLR implicit $s0293 bb.2:294 $s1 = COPY %cmp_rhs295 RET_ReallyLR implicit $s1296 297...298---299name: uno300legalized: true301regBankSelected: true302tracksRegLiveness: true303body: |304 ; CHECK-LABEL: name: uno305 ; CHECK: bb.0:306 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)307 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1308 ; CHECK-NEXT: {{ $}}309 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0310 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1311 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr312 ; CHECK-NEXT: Bcc 6, %bb.2, implicit $nzcv313 ; CHECK-NEXT: B %bb.1314 ; CHECK-NEXT: {{ $}}315 ; CHECK-NEXT: bb.1:316 ; CHECK-NEXT: $s0 = COPY %cmp_lhs317 ; CHECK-NEXT: RET_ReallyLR implicit $s0318 ; CHECK-NEXT: {{ $}}319 ; CHECK-NEXT: bb.2:320 ; CHECK-NEXT: $s1 = COPY %cmp_rhs321 ; CHECK-NEXT: RET_ReallyLR implicit $s1322 bb.0:323 successors: %bb.1(0x50000000), %bb.2(0x30000000)324 liveins: $s0, $s1, $w0, $w1325 326 %cmp_lhs:fpr(s32) = COPY $s0327 %cmp_rhs:fpr(s32) = COPY $s1328 %fcmp:gpr(s32) = G_FCMP floatpred(uno), %cmp_lhs(s32), %cmp_rhs329 G_BRCOND %fcmp, %bb.2330 G_BR %bb.1331 bb.1:332 $s0 = COPY %cmp_lhs333 RET_ReallyLR implicit $s0334 bb.2:335 $s1 = COPY %cmp_rhs336 RET_ReallyLR implicit $s1337 338...339---340name: ueq341legalized: true342regBankSelected: true343tracksRegLiveness: true344body: |345 ; CHECK-LABEL: name: ueq346 ; CHECK: bb.0:347 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)348 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1349 ; CHECK-NEXT: {{ $}}350 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0351 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1352 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr353 ; CHECK-NEXT: Bcc 0, %bb.2, implicit $nzcv354 ; CHECK-NEXT: Bcc 6, %bb.2, implicit $nzcv355 ; CHECK-NEXT: B %bb.1356 ; CHECK-NEXT: {{ $}}357 ; CHECK-NEXT: bb.1:358 ; CHECK-NEXT: $s0 = COPY %cmp_lhs359 ; CHECK-NEXT: RET_ReallyLR implicit $s0360 ; CHECK-NEXT: {{ $}}361 ; CHECK-NEXT: bb.2:362 ; CHECK-NEXT: $s1 = COPY %cmp_rhs363 ; CHECK-NEXT: RET_ReallyLR implicit $s1364 bb.0:365 successors: %bb.1(0x50000000), %bb.2(0x30000000)366 liveins: $s0, $s1, $w0, $w1367 368 %cmp_lhs:fpr(s32) = COPY $s0369 %cmp_rhs:fpr(s32) = COPY $s1370 %fcmp:gpr(s32) = G_FCMP floatpred(ueq), %cmp_lhs(s32), %cmp_rhs371 G_BRCOND %fcmp, %bb.2372 G_BR %bb.1373 bb.1:374 $s0 = COPY %cmp_lhs375 RET_ReallyLR implicit $s0376 bb.2:377 $s1 = COPY %cmp_rhs378 RET_ReallyLR implicit $s1379 380...381---382name: ugt383legalized: true384regBankSelected: true385tracksRegLiveness: true386body: |387 ; CHECK-LABEL: name: ugt388 ; CHECK: bb.0:389 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)390 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1391 ; CHECK-NEXT: {{ $}}392 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0393 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1394 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr395 ; CHECK-NEXT: Bcc 8, %bb.2, implicit $nzcv396 ; CHECK-NEXT: B %bb.1397 ; CHECK-NEXT: {{ $}}398 ; CHECK-NEXT: bb.1:399 ; CHECK-NEXT: $s0 = COPY %cmp_lhs400 ; CHECK-NEXT: RET_ReallyLR implicit $s0401 ; CHECK-NEXT: {{ $}}402 ; CHECK-NEXT: bb.2:403 ; CHECK-NEXT: $s1 = COPY %cmp_rhs404 ; CHECK-NEXT: RET_ReallyLR implicit $s1405 bb.0:406 successors: %bb.1(0x50000000), %bb.2(0x30000000)407 liveins: $s0, $s1, $w0, $w1408 409 %cmp_lhs:fpr(s32) = COPY $s0410 %cmp_rhs:fpr(s32) = COPY $s1411 %fcmp:gpr(s32) = G_FCMP floatpred(ugt), %cmp_lhs(s32), %cmp_rhs412 G_BRCOND %fcmp, %bb.2413 G_BR %bb.1414 bb.1:415 $s0 = COPY %cmp_lhs416 RET_ReallyLR implicit $s0417 bb.2:418 $s1 = COPY %cmp_rhs419 RET_ReallyLR implicit $s1420 421...422---423name: uge424legalized: true425regBankSelected: true426tracksRegLiveness: true427body: |428 ; CHECK-LABEL: name: uge429 ; CHECK: bb.0:430 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)431 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1432 ; CHECK-NEXT: {{ $}}433 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0434 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1435 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr436 ; CHECK-NEXT: Bcc 5, %bb.2, implicit $nzcv437 ; CHECK-NEXT: B %bb.1438 ; CHECK-NEXT: {{ $}}439 ; CHECK-NEXT: bb.1:440 ; CHECK-NEXT: $s0 = COPY %cmp_lhs441 ; CHECK-NEXT: RET_ReallyLR implicit $s0442 ; CHECK-NEXT: {{ $}}443 ; CHECK-NEXT: bb.2:444 ; CHECK-NEXT: $s1 = COPY %cmp_rhs445 ; CHECK-NEXT: RET_ReallyLR implicit $s1446 bb.0:447 successors: %bb.1(0x50000000), %bb.2(0x30000000)448 liveins: $s0, $s1, $w0, $w1449 450 %cmp_lhs:fpr(s32) = COPY $s0451 %cmp_rhs:fpr(s32) = COPY $s1452 %fcmp:gpr(s32) = G_FCMP floatpred(uge), %cmp_lhs(s32), %cmp_rhs453 G_BRCOND %fcmp, %bb.2454 G_BR %bb.1455 bb.1:456 $s0 = COPY %cmp_lhs457 RET_ReallyLR implicit $s0458 bb.2:459 $s1 = COPY %cmp_rhs460 RET_ReallyLR implicit $s1461 462...463---464name: ult465legalized: true466regBankSelected: true467tracksRegLiveness: true468body: |469 ; CHECK-LABEL: name: ult470 ; CHECK: bb.0:471 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)472 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1473 ; CHECK-NEXT: {{ $}}474 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0475 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1476 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr477 ; CHECK-NEXT: Bcc 11, %bb.2, implicit $nzcv478 ; CHECK-NEXT: B %bb.1479 ; CHECK-NEXT: {{ $}}480 ; CHECK-NEXT: bb.1:481 ; CHECK-NEXT: $s0 = COPY %cmp_lhs482 ; CHECK-NEXT: RET_ReallyLR implicit $s0483 ; CHECK-NEXT: {{ $}}484 ; CHECK-NEXT: bb.2:485 ; CHECK-NEXT: $s1 = COPY %cmp_rhs486 ; CHECK-NEXT: RET_ReallyLR implicit $s1487 bb.0:488 successors: %bb.1(0x50000000), %bb.2(0x30000000)489 liveins: $s0, $s1, $w0, $w1490 491 %cmp_lhs:fpr(s32) = COPY $s0492 %cmp_rhs:fpr(s32) = COPY $s1493 %fcmp:gpr(s32) = G_FCMP floatpred(ult), %cmp_lhs(s32), %cmp_rhs494 G_BRCOND %fcmp, %bb.2495 G_BR %bb.1496 bb.1:497 $s0 = COPY %cmp_lhs498 RET_ReallyLR implicit $s0499 bb.2:500 $s1 = COPY %cmp_rhs501 RET_ReallyLR implicit $s1502 503...504---505name: ule506legalized: true507regBankSelected: true508tracksRegLiveness: true509body: |510 ; CHECK-LABEL: name: ule511 ; CHECK: bb.0:512 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)513 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1514 ; CHECK-NEXT: {{ $}}515 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0516 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1517 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr518 ; CHECK-NEXT: Bcc 13, %bb.2, implicit $nzcv519 ; CHECK-NEXT: B %bb.1520 ; CHECK-NEXT: {{ $}}521 ; CHECK-NEXT: bb.1:522 ; CHECK-NEXT: $s0 = COPY %cmp_lhs523 ; CHECK-NEXT: RET_ReallyLR implicit $s0524 ; CHECK-NEXT: {{ $}}525 ; CHECK-NEXT: bb.2:526 ; CHECK-NEXT: $s1 = COPY %cmp_rhs527 ; CHECK-NEXT: RET_ReallyLR implicit $s1528 bb.0:529 successors: %bb.1(0x50000000), %bb.2(0x30000000)530 liveins: $s0, $s1, $w0, $w1531 532 %cmp_lhs:fpr(s32) = COPY $s0533 %cmp_rhs:fpr(s32) = COPY $s1534 %fcmp:gpr(s32) = G_FCMP floatpred(ule), %cmp_lhs(s32), %cmp_rhs535 G_BRCOND %fcmp, %bb.2536 G_BR %bb.1537 bb.1:538 $s0 = COPY %cmp_lhs539 RET_ReallyLR implicit $s0540 bb.2:541 $s1 = COPY %cmp_rhs542 RET_ReallyLR implicit $s1543 544...545---546name: une547legalized: true548regBankSelected: true549tracksRegLiveness: true550body: |551 ; CHECK-LABEL: name: une552 ; CHECK: bb.0:553 ; CHECK-NEXT: successors: %bb.1(0x50000000), %bb.2(0x30000000)554 ; CHECK-NEXT: liveins: $s0, $s1, $w0, $w1555 ; CHECK-NEXT: {{ $}}556 ; CHECK-NEXT: %cmp_lhs:fpr32 = COPY $s0557 ; CHECK-NEXT: %cmp_rhs:fpr32 = COPY $s1558 ; CHECK-NEXT: nofpexcept FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv, implicit $fpcr559 ; CHECK-NEXT: Bcc 1, %bb.2, implicit $nzcv560 ; CHECK-NEXT: B %bb.1561 ; CHECK-NEXT: {{ $}}562 ; CHECK-NEXT: bb.1:563 ; CHECK-NEXT: $s0 = COPY %cmp_lhs564 ; CHECK-NEXT: RET_ReallyLR implicit $s0565 ; CHECK-NEXT: {{ $}}566 ; CHECK-NEXT: bb.2:567 ; CHECK-NEXT: $s1 = COPY %cmp_rhs568 ; CHECK-NEXT: RET_ReallyLR implicit $s1569 bb.0:570 successors: %bb.1(0x50000000), %bb.2(0x30000000)571 liveins: $s0, $s1, $w0, $w1572 573 %cmp_lhs:fpr(s32) = COPY $s0574 %cmp_rhs:fpr(s32) = COPY $s1575 %fcmp:gpr(s32) = G_FCMP floatpred(une), %cmp_lhs(s32), %cmp_rhs576 G_BRCOND %fcmp, %bb.2577 G_BR %bb.1578 bb.1:579 $s0 = COPY %cmp_lhs580 RET_ReallyLR implicit $s0581 bb.2:582 $s1 = COPY %cmp_rhs583 RET_ReallyLR implicit $s1584