@@ -808,3 +808,99 @@ body: |
808
808
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
809
809
%y:vrnov0 = PseudoVMERGE_VVM_MF2 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
810
810
...
811
+ ---
812
+ name : vmv_v_i
813
+ body : |
814
+ bb.0:
815
+ ; CHECK-LABEL: name: vmv_v_i
816
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
817
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 3 /* e8 */, 0 /* tu, mu */
818
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
819
+ %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 3 /* e8 */, 0
820
+ ...
821
+ ---
822
+ name : vmv_v_i_incompatible_eew
823
+ body : |
824
+ bb.0:
825
+ ; CHECK-LABEL: name: vmv_v_i_incompatible_eew
826
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
827
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 4 /* e16 */, 0 /* tu, mu */
828
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
829
+ %y:vr = PseudoVMV_V_I_M1 %x, 9, 1, 4 /* e16 */, 0
830
+ ...
831
+ ---
832
+ name : vmv_v_i_incompatible_emul
833
+ body : |
834
+ bb.0:
835
+ ; CHECK-LABEL: name: vmv_v_i_incompatible_emul
836
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
837
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_MF2 %x, 9, 1, 3 /* e8 */, 0 /* tu, mu */
838
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
839
+ %y:vr = PseudoVMV_V_I_MF2 %x, 9, 1, 3 /* e8 */, 0
840
+ ...
841
+ ---
842
+ name : vmv_v_x
843
+ body : |
844
+ bb.0:
845
+ ; CHECK-LABEL: name: vmv_v_x
846
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
847
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
848
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 3 /* e8 */, 0 /* tu, mu */
849
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
850
+ %y:gpr = ADDI $x0, 1
851
+ %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 3 /* e8 */, 0
852
+ ...
853
+ ---
854
+ name : vmv_v_x_incompatible_eew
855
+ body : |
856
+ bb.0:
857
+ ; CHECK-LABEL: name: vmv_v_x_incompatible_eew
858
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
859
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
860
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 4 /* e16 */, 0 /* tu, mu */
861
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
862
+ %y:gpr = ADDI $x0, 1
863
+ %z:vr = PseudoVMV_V_X_M1 %x, %y, 1, 4 /* e16 */, 0
864
+ ...
865
+ ---
866
+ name : vmv_v_x_incompatible_emul
867
+ body : |
868
+ bb.0:
869
+ ; CHECK-LABEL: name: vmv_v_x_incompatible_emul
870
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
871
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
872
+ ; CHECK-NEXT: %z:vr = PseudoVMV_V_X_MF2 %x, %y, 1, 3 /* e8 */, 0 /* tu, mu */
873
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
874
+ %y:gpr = ADDI $x0, 1
875
+ %z:vr = PseudoVMV_V_X_MF2 %x, %y, 1, 3 /* e8 */, 0
876
+ ...
877
+ ---
878
+ name : vmv_v_v
879
+ body : |
880
+ bb.0:
881
+ ; CHECK-LABEL: name: vmv_v_v
882
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
883
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_I_M1 $noreg, %x, 1, 3 /* e8 */, 0 /* tu, mu */
884
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
885
+ %y:vr = PseudoVMV_V_I_M1 $noreg, %x, 1, 3 /* e8 */, 0
886
+ ...
887
+ ---
888
+ name : vmv_v_v_incompatible_eew
889
+ body : |
890
+ bb.0:
891
+ ; CHECK-LABEL: name: vmv_v_v_incompatible_eew
892
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
893
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_V_M1 %x, $noreg, 1, 4 /* e16 */, 0 /* tu, mu */
894
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
895
+ %y:vr = PseudoVMV_V_V_M1 %x, $noreg, 1, 4 /* e16 */, 0
896
+ ...
897
+ ---
898
+ name : vmv_v_v_incompatible_emul
899
+ body : |
900
+ bb.0:
901
+ ; CHECK-LABEL: name: vmv_v_v_incompatible_emul
902
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
903
+ ; CHECK-NEXT: %y:vr = PseudoVMV_V_V_MF2 %x, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
904
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
905
+ %y:vr = PseudoVMV_V_V_MF2 %x, $noreg, 1, 3 /* e8 */, 0
906
+ ...
0 commit comments