|
6 | 6 | ; RUN: llc -mtriple=riscv64 -mattr=+conditional-cmv-fusion,+c,+zicond -verify-machineinstrs < %s \
|
7 | 7 | ; RUN: | FileCheck -check-prefixes=CMOV,CMOV-ZICOND %s
|
8 | 8 | ; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt -verify-machineinstrs < %s \
|
9 |
| -; RUN: | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND %s |
| 9 | +; RUN: | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND,SFB-NOZICOND-NOC %s |
10 | 10 | ; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt,+c -verify-machineinstrs < %s \
|
11 |
| -; RUN: | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND %s |
| 11 | +; RUN: | FileCheck -check-prefixes=SHORT_FORWARD,SFB-NOZICOND,SFB-NOZICOND-C %s |
12 | 12 | ; RUN: llc -mtriple=riscv64 -mattr=+short-forward-branch-opt,+zicond -verify-machineinstrs < %s \
|
13 | 13 | ; RUN: | FileCheck -check-prefixes=SHORT_FORWARD,SFB-ZICOND %s
|
14 | 14 |
|
@@ -263,6 +263,24 @@ define i32 @select_xor_2(i32 %A, i32 %B, i8 %cond) {
|
263 | 263 | ; CMOV-NEXT: .LBB6_2: # %entry
|
264 | 264 | ; CMOV-NEXT: ret
|
265 | 265 | ;
|
| 266 | +; SFB-NOZICOND-NOC-LABEL: select_xor_2: |
| 267 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 268 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 269 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB6_2 |
| 270 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 271 | +; SFB-NOZICOND-NOC-NEXT: xor a0, a1, a0 |
| 272 | +; SFB-NOZICOND-NOC-NEXT: .LBB6_2: # %entry |
| 273 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 274 | +; |
| 275 | +; SFB-NOZICOND-C-LABEL: select_xor_2: |
| 276 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 277 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 278 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB6_2 |
| 279 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 280 | +; SFB-NOZICOND-C-NEXT: xor a0, a0, a1 |
| 281 | +; SFB-NOZICOND-C-NEXT: .LBB6_2: # %entry |
| 282 | +; SFB-NOZICOND-C-NEXT: ret |
| 283 | +; |
266 | 284 | ; SFB-ZICOND-LABEL: select_xor_2:
|
267 | 285 | ; SFB-ZICOND: # %bb.0: # %entry
|
268 | 286 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
@@ -300,6 +318,24 @@ define i32 @select_xor_2b(i32 %A, i32 %B, i8 %cond) {
|
300 | 318 | ; CMOV-NEXT: .LBB7_2: # %entry
|
301 | 319 | ; CMOV-NEXT: ret
|
302 | 320 | ;
|
| 321 | +; SFB-NOZICOND-NOC-LABEL: select_xor_2b: |
| 322 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 323 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 324 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB7_2 |
| 325 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 326 | +; SFB-NOZICOND-NOC-NEXT: xor a0, a1, a0 |
| 327 | +; SFB-NOZICOND-NOC-NEXT: .LBB7_2: # %entry |
| 328 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 329 | +; |
| 330 | +; SFB-NOZICOND-C-LABEL: select_xor_2b: |
| 331 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 332 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 333 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB7_2 |
| 334 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 335 | +; SFB-NOZICOND-C-NEXT: xor a0, a0, a1 |
| 336 | +; SFB-NOZICOND-C-NEXT: .LBB7_2: # %entry |
| 337 | +; SFB-NOZICOND-C-NEXT: ret |
| 338 | +; |
303 | 339 | ; SFB-ZICOND-LABEL: select_xor_2b:
|
304 | 340 | ; SFB-ZICOND: # %bb.0: # %entry
|
305 | 341 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
@@ -335,6 +371,24 @@ define i32 @select_or(i32 %A, i32 %B, i8 %cond) {
|
335 | 371 | ; CMOV-NEXT: .LBB8_2: # %entry
|
336 | 372 | ; CMOV-NEXT: ret
|
337 | 373 | ;
|
| 374 | +; SFB-NOZICOND-NOC-LABEL: select_or: |
| 375 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 376 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 377 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB8_2 |
| 378 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 379 | +; SFB-NOZICOND-NOC-NEXT: or a0, a1, a0 |
| 380 | +; SFB-NOZICOND-NOC-NEXT: .LBB8_2: # %entry |
| 381 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 382 | +; |
| 383 | +; SFB-NOZICOND-C-LABEL: select_or: |
| 384 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 385 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 386 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB8_2 |
| 387 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 388 | +; SFB-NOZICOND-C-NEXT: or a0, a0, a1 |
| 389 | +; SFB-NOZICOND-C-NEXT: .LBB8_2: # %entry |
| 390 | +; SFB-NOZICOND-C-NEXT: ret |
| 391 | +; |
338 | 392 | ; SFB-ZICOND-LABEL: select_or:
|
339 | 393 | ; SFB-ZICOND: # %bb.0: # %entry
|
340 | 394 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
@@ -372,6 +426,24 @@ define i32 @select_or_b(i32 %A, i32 %B, i8 %cond) {
|
372 | 426 | ; CMOV-NEXT: .LBB9_2: # %entry
|
373 | 427 | ; CMOV-NEXT: ret
|
374 | 428 | ;
|
| 429 | +; SFB-NOZICOND-NOC-LABEL: select_or_b: |
| 430 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 431 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 432 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB9_2 |
| 433 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 434 | +; SFB-NOZICOND-NOC-NEXT: or a0, a1, a0 |
| 435 | +; SFB-NOZICOND-NOC-NEXT: .LBB9_2: # %entry |
| 436 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 437 | +; |
| 438 | +; SFB-NOZICOND-C-LABEL: select_or_b: |
| 439 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 440 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 441 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB9_2 |
| 442 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 443 | +; SFB-NOZICOND-C-NEXT: or a0, a0, a1 |
| 444 | +; SFB-NOZICOND-C-NEXT: .LBB9_2: # %entry |
| 445 | +; SFB-NOZICOND-C-NEXT: ret |
| 446 | +; |
375 | 447 | ; SFB-ZICOND-LABEL: select_or_b:
|
376 | 448 | ; SFB-ZICOND: # %bb.0: # %entry
|
377 | 449 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
@@ -407,6 +479,24 @@ define i32 @select_or_1(i32 %A, i32 %B, i32 %cond) {
|
407 | 479 | ; CMOV-NEXT: .LBB10_2: # %entry
|
408 | 480 | ; CMOV-NEXT: ret
|
409 | 481 | ;
|
| 482 | +; SFB-NOZICOND-NOC-LABEL: select_or_1: |
| 483 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 484 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 485 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB10_2 |
| 486 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 487 | +; SFB-NOZICOND-NOC-NEXT: or a0, a1, a0 |
| 488 | +; SFB-NOZICOND-NOC-NEXT: .LBB10_2: # %entry |
| 489 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 490 | +; |
| 491 | +; SFB-NOZICOND-C-LABEL: select_or_1: |
| 492 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 493 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 494 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB10_2 |
| 495 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 496 | +; SFB-NOZICOND-C-NEXT: or a0, a0, a1 |
| 497 | +; SFB-NOZICOND-C-NEXT: .LBB10_2: # %entry |
| 498 | +; SFB-NOZICOND-C-NEXT: ret |
| 499 | +; |
410 | 500 | ; SFB-ZICOND-LABEL: select_or_1:
|
411 | 501 | ; SFB-ZICOND: # %bb.0: # %entry
|
412 | 502 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
@@ -444,6 +534,24 @@ define i32 @select_or_1b(i32 %A, i32 %B, i32 %cond) {
|
444 | 534 | ; CMOV-NEXT: .LBB11_2: # %entry
|
445 | 535 | ; CMOV-NEXT: ret
|
446 | 536 | ;
|
| 537 | +; SFB-NOZICOND-NOC-LABEL: select_or_1b: |
| 538 | +; SFB-NOZICOND-NOC: # %bb.0: # %entry |
| 539 | +; SFB-NOZICOND-NOC-NEXT: andi a2, a2, 1 |
| 540 | +; SFB-NOZICOND-NOC-NEXT: beqz a2, .LBB11_2 |
| 541 | +; SFB-NOZICOND-NOC-NEXT: # %bb.1: # %entry |
| 542 | +; SFB-NOZICOND-NOC-NEXT: or a0, a1, a0 |
| 543 | +; SFB-NOZICOND-NOC-NEXT: .LBB11_2: # %entry |
| 544 | +; SFB-NOZICOND-NOC-NEXT: ret |
| 545 | +; |
| 546 | +; SFB-NOZICOND-C-LABEL: select_or_1b: |
| 547 | +; SFB-NOZICOND-C: # %bb.0: # %entry |
| 548 | +; SFB-NOZICOND-C-NEXT: andi a2, a2, 1 |
| 549 | +; SFB-NOZICOND-C-NEXT: beqz a2, .LBB11_2 |
| 550 | +; SFB-NOZICOND-C-NEXT: # %bb.1: # %entry |
| 551 | +; SFB-NOZICOND-C-NEXT: or a0, a0, a1 |
| 552 | +; SFB-NOZICOND-C-NEXT: .LBB11_2: # %entry |
| 553 | +; SFB-NOZICOND-C-NEXT: ret |
| 554 | +; |
447 | 555 | ; SFB-ZICOND-LABEL: select_or_1b:
|
448 | 556 | ; SFB-ZICOND: # %bb.0: # %entry
|
449 | 557 | ; SFB-ZICOND-NEXT: andi a2, a2, 1
|
|
0 commit comments