| 
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