[llvm] 181d039 - [RISCV] Add missing constraints for vwsll
    via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon May  1 22:09:36 PDT 2023
    
    
  
Author: 4vtomat
Date: 2023-05-01T22:09:29-07:00
New Revision: 181d0399e2243c793618cb2a322d8043dece7089
URL: https://github.com/llvm/llvm-project/commit/181d0399e2243c793618cb2a322d8043dece7089
DIFF: https://github.com/llvm/llvm-project/commit/181d0399e2243c793618cb2a322d8043dece7089.diff
LOG: [RISCV] Add missing constraints for vwsll
Add missing early clobber and widen constraints for vector crypto instruction: vwsll
Differential Revision: https://reviews.llvm.org/D149127
Added: 
    llvm/test/MC/RISCV/rvv/zvbb-invalid.s
Modified: 
    llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
Removed: 
    
################################################################################
diff  --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
index 1e27e4306b840..ea7240af691cd 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
@@ -138,6 +138,7 @@ let Predicates = [HasStdExtZvbb] in {
   def  VREV8_V  : VALUVs2<0b010010, 0b01001, OPMVV, "vrev8.v">;
   defm VROL_V   : VALU_IV_V_X<"vrol", 0b010101>;
   defm VROR_V   : VROR_IV_V_X_I<"vror", 0b010100>;
+  let Constraints = "@earlyclobber $vd", RVVConstraint = WidenV in
   defm VWSLL_V  : VALU_IV_V_X_I<"vwsll", 0b110101, uimm5>;
 } // Predicates = [HasStdExtZvbb]
 
diff  --git a/llvm/test/MC/RISCV/rvv/zvbb-invalid.s b/llvm/test/MC/RISCV/rvv/zvbb-invalid.s
new file mode 100644
index 0000000000000..46bde3a8ce702
--- /dev/null
+++ b/llvm/test/MC/RISCV/rvv/zvbb-invalid.s
@@ -0,0 +1,14 @@
+# RUN: not llvm-mc -triple=riscv64 --mattr=+zve64x --mattr=+experimental-zvbb %s 2>&1 \
+# RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+
+vwsll.vv v2, v2, v4
+# CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
+# CHECK-ERROR-LABEL: vwsll.vv v2, v2, v4
+
+vwsll.vx v2, v2, x10
+# CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
+# CHECK-ERROR-LABEL: vwsll.vx v2, v2, x10
+
+vwsll.vi v2, v2, 1
+# CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
+# CHECK-ERROR-LABEL: vwsll.vi v2, v2, 1
        
    
    
More information about the llvm-commits
mailing list