@@ -609,4 +609,99 @@ body: |
609
609
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
610
610
%y:vrnov0 = PseudoVMERGE_VVM_MF2 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
611
611
...
612
-
612
+ ---
613
+ name : vmv_v_i
614
+ body : |
615
+ bb.0:
616
+ ; CHECK-LABEL: name: vmv_v_i
617
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
618
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 3 /* e8 */, 0 /* tu, mu */
619
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
620
+ %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 3 /* e8 */, 0
621
+ ...
622
+ ---
623
+ name : vmv_v_i_incompatible_eew
624
+ body : |
625
+ bb.0:
626
+ ; CHECK-LABEL: name: vmv_v_i_incompatible_eew
627
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
628
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 4 /* e16 */, 0 /* tu, mu */
629
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
630
+ %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 4 /* e16 */, 0
631
+ ...
632
+ ---
633
+ name : vmv_v_i_incompatible_emul
634
+ body : |
635
+ bb.0:
636
+ ; CHECK-LABEL: name: vmv_v_i_incompatible_emul
637
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
638
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_MF2 %x, 9, 1, 3 /* e8 */, 0 /* tu, mu */
639
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
640
+ %y:vr = PseudoVMV_V_I_MF2 %x, 9, 1, 3 /* e8 */, 0
641
+ ...
642
+ ---
643
+ name : vmv_v_x
644
+ body : |
645
+ bb.0:
646
+ ; CHECK-LABEL: name: vmv_v_x
647
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
648
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
649
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 3 /* e8 */, 0 /* tu, mu */
650
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
651
+ %y:gpr = ADDI $x0, 1
652
+ %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 3 /* e8 */, 0
653
+ ...
654
+ ---
655
+ name : vmv_v_x_incompatible_eew
656
+ body : |
657
+ bb.0:
658
+ ; CHECK-LABEL: name: vmv_v_x_incompatible_eew
659
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
660
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
661
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 4 /* e16 */, 0 /* tu, mu */
662
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
663
+ %y:gpr = ADDI $x0, 1
664
+ %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 4 /* e16 */, 0
665
+ ...
666
+ ---
667
+ name : vmv_v_x_incompatible_emul
668
+ body : |
669
+ bb.0:
670
+ ; CHECK-LABEL: name: vmv_v_x_incompatible_emul
671
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
672
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
673
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_MF2 %x, %y, 1, 3 /* e8 */, 0 /* tu, mu */
674
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
675
+ %y:gpr = ADDI $x0, 1
676
+ %z:vr = PseudoVMV_V_X_MF2 %x, %y, 1, 3 /* e8 */, 0
677
+ ...
678
+ ---
679
+ name : vmv_v_v
680
+ body : |
681
+ bb.0:
682
+ ; CHECK-LABEL: name: vmv_v_v
683
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
684
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 $noreg, %x, 1, 3 /* e8 */, 0 /* tu, mu */
685
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
686
+ %y:vr = PseudoVMV_V_I_M1 $noreg, %x, 1, 3 /* e8 */, 0
687
+ ...
688
+ ---
689
+ name : vmv_v_v_incompatible_eew
690
+ body : |
691
+ bb.0:
692
+ ; CHECK-LABEL: name: vmv_v_v_incompatible_eew
693
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
694
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_V_M1 %x, $noreg, 1, 4 /* e16 */, 0 /* tu, mu */
695
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
696
+ %y:vr = PseudoVMV_V_V_M1 %x, $noreg, 1, 4 /* e16 */, 0
697
+ ...
698
+ ---
699
+ name : vmv_v_v_incompatible_emul
700
+ body : |
701
+ bb.0:
702
+ ; CHECK-LABEL: name: vmv_v_v_incompatible_emul
703
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
704
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_V_MF2 %x, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
705
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
706
+ %y:vr = PseudoVMV_V_V_MF2 %x, $noreg, 1, 3 /* e8 */, 0
707
+ ...
0 commit comments