|
1 | 1 | # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
2 |
| -# RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx942 -verify-machineinstrs -run-pass peephole-opt -o - %s | FileCheck -check-prefix=GCN %s |
| 2 | +# RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx942 -verify-machineinstrs -run-pass peephole-opt -o - %s | FileCheck -check-prefixes=GCN,GFX942 %s |
| 3 | +# RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx1250 -run-pass peephole-opt -o - %s | FileCheck -check-prefixes=GCN,GFX1250 %s |
3 | 4 |
|
4 | 5 | ---
|
5 | 6 | name: fold_simm_virtual
|
@@ -564,6 +565,144 @@ body: |
|
564 | 565 |
|
565 | 566 | ...
|
566 | 567 |
|
| 568 | +--- |
| 569 | +name: fmac_sreg_64_src0_to_fmamk_f64 |
| 570 | +tracksRegLiveness: true |
| 571 | +body: | |
| 572 | + bb.0: |
| 573 | +
|
| 574 | + ; GFX942-LABEL: name: fmac_sreg_64_src0_to_fmamk_f64 |
| 575 | + ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 576 | + ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 577 | + ; GFX942-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 578 | + ; GFX942-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec |
| 579 | + ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]] |
| 580 | + ; |
| 581 | + ; GFX1250-LABEL: name: fmac_sreg_64_src0_to_fmamk_f64 |
| 582 | + ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 583 | + ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 584 | + ; GFX1250-NEXT: [[V_FMAMK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAMK_F64 [[DEF]], 1311768467750121200, [[DEF1]], implicit $mode, implicit $exec |
| 585 | + ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F64_]] |
| 586 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 587 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 588 | + %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 589 | + %3:vreg_64_align2 = V_FMAC_F64_e64 0, %2, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec |
| 590 | + SI_RETURN_TO_EPILOG %3 |
| 591 | +... |
| 592 | + |
| 593 | +--- |
| 594 | +name: fmac_sreg_64_src1_to_fmamk_f64 |
| 595 | +tracksRegLiveness: true |
| 596 | +body: | |
| 597 | + bb.0: |
| 598 | +
|
| 599 | + ; GCN-LABEL: name: fmac_sreg_64_src1_to_fmamk_f64 |
| 600 | + ; GCN: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 601 | + ; GCN-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 602 | + ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 603 | + ; GCN-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec |
| 604 | + ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]] |
| 605 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 606 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 607 | + %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 608 | + %3:vreg_64_align2 = V_FMAC_F64_e64 0, %0, 0, %1, 0, %1, 0, 0, implicit $mode, implicit $exec |
| 609 | + SI_RETURN_TO_EPILOG %3 |
| 610 | +... |
| 611 | + |
| 612 | +--- |
| 613 | +name: fmac_vreg_64_to_fmaak_f64 |
| 614 | +tracksRegLiveness: true |
| 615 | +body: | |
| 616 | + bb.0: |
| 617 | +
|
| 618 | + ; GFX942-LABEL: name: fmac_vreg_64_to_fmaak_f64 |
| 619 | + ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 620 | + ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 621 | + ; GFX942-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec |
| 622 | + ; GFX942-NEXT: [[V_FMAC_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMAC_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec |
| 623 | + ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMAC_F64_e64_]] |
| 624 | + ; |
| 625 | + ; GFX1250-LABEL: name: fmac_vreg_64_to_fmaak_f64 |
| 626 | + ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 627 | + ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 628 | + ; GFX1250-NEXT: [[V_FMAAK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAAK_F64 [[DEF]], [[DEF1]], 1311768467750121200, implicit $mode, implicit $exec |
| 629 | + ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F64_]] |
| 630 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 631 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 632 | + %2:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec |
| 633 | + %3:vreg_64_align2 = V_FMAC_F64_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec |
| 634 | + SI_RETURN_TO_EPILOG %3 |
| 635 | +... |
| 636 | + |
| 637 | +--- |
| 638 | +name: fma_sreg_64_src0_to_fmamk_f64 |
| 639 | +tracksRegLiveness: true |
| 640 | +body: | |
| 641 | + bb.0: |
| 642 | +
|
| 643 | + ; GFX942-LABEL: name: fma_sreg_64_src0_to_fmamk_f64 |
| 644 | + ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 645 | + ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 646 | + ; GFX942-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 647 | + ; GFX942-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[S_MOV_B]], 0, [[DEF]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec |
| 648 | + ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]] |
| 649 | + ; |
| 650 | + ; GFX1250-LABEL: name: fma_sreg_64_src0_to_fmamk_f64 |
| 651 | + ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 652 | + ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 653 | + ; GFX1250-NEXT: [[V_FMAMK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAMK_F64 [[DEF]], 1311768467750121200, [[DEF1]], implicit $mode, implicit $exec |
| 654 | + ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAMK_F64_]] |
| 655 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 656 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 657 | + %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 658 | + %3:vreg_64_align2 = V_FMA_F64_e64 0, %2, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec |
| 659 | + SI_RETURN_TO_EPILOG %3 |
| 660 | +... |
| 661 | + |
| 662 | +--- |
| 663 | +name: fma_sreg_64_src1_to_fmamk_f64 |
| 664 | +tracksRegLiveness: true |
| 665 | +body: | |
| 666 | + bb.0: |
| 667 | +
|
| 668 | + ; GCN-LABEL: name: fma_sreg_64_src1_to_fmamk_f64 |
| 669 | + ; GCN: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 670 | + ; GCN-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 671 | + ; GCN-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 672 | + ; GCN-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[DEF1]], 0, 0, implicit $mode, implicit $exec |
| 673 | + ; GCN-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]] |
| 674 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 675 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 676 | + %2:sreg_64 = S_MOV_B64_IMM_PSEUDO 1311768467750121200 |
| 677 | + %3:vreg_64_align2 = V_FMA_F64_e64 0, %0, 0, %1, 0, %1, 0, 0, implicit $mode, implicit $exec |
| 678 | + SI_RETURN_TO_EPILOG %3 |
| 679 | +... |
| 680 | + |
| 681 | +--- |
| 682 | +name: fma_vreg_64_to_fmaak_f64 |
| 683 | +tracksRegLiveness: true |
| 684 | +body: | |
| 685 | + bb.0: |
| 686 | +
|
| 687 | + ; GFX942-LABEL: name: fma_vreg_64_to_fmaak_f64 |
| 688 | + ; GFX942: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 689 | + ; GFX942-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 690 | + ; GFX942-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec |
| 691 | + ; GFX942-NEXT: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = V_FMA_F64_e64 0, [[DEF]], 0, [[DEF1]], 0, [[V_MOV_B]], 0, 0, implicit $mode, implicit $exec |
| 692 | + ; GFX942-NEXT: SI_RETURN_TO_EPILOG [[V_FMA_F64_e64_]] |
| 693 | + ; |
| 694 | + ; GFX1250-LABEL: name: fma_vreg_64_to_fmaak_f64 |
| 695 | + ; GFX1250: [[DEF:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 696 | + ; GFX1250-NEXT: [[DEF1:%[0-9]+]]:vreg_64_align2 = IMPLICIT_DEF |
| 697 | + ; GFX1250-NEXT: [[V_FMAAK_F64_:%[0-9]+]]:vreg_64_align2 = V_FMAAK_F64 [[DEF]], [[DEF1]], 1311768467750121200, implicit $mode, implicit $exec |
| 698 | + ; GFX1250-NEXT: SI_RETURN_TO_EPILOG [[V_FMAAK_F64_]] |
| 699 | + %0:vreg_64_align2 = IMPLICIT_DEF |
| 700 | + %1:vreg_64_align2 = IMPLICIT_DEF |
| 701 | + %2:vreg_64_align2 = V_MOV_B64_PSEUDO 1311768467750121200, implicit $exec |
| 702 | + %3:vreg_64_align2 = V_FMA_F64_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec |
| 703 | + SI_RETURN_TO_EPILOG %3 |
| 704 | +... |
| 705 | + |
567 | 706 | ---
|
568 | 707 | name: fold_v_mov_b32_e32_literal_to_agpr
|
569 | 708 | body: |
|
|
0 commit comments