From 7a2b12b05b39bce08987968270b43ca05d9a4836 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 5 Jun 2023 09:24:50 -0700 Subject: [PATCH] [RISCV] Switch vwsll.v* instructions to use the VSHT_IV_V_X_I class instead of VALU_IV_V_X_I. This allows us to remove the uimm5 argument and changes the scheduler class from ALU to Shift. Ultimately we need a WShift scheduler class, but we need to scrub all of the crypto instructions for scheduler classes so I'll leave that for future work. Reviewed By: 4vtomat, ego Differential Revision: https://reviews.llvm.org/D152030 --- llvm/lib/Target/RISCV/RISCVInstrInfoV.td | 4 ++-- llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td index d89b0f8..a6f3d15 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td @@ -442,14 +442,14 @@ multiclass VIndexLoadStore EEWList> { } } -multiclass VALU_IV_V_X_I funct6, Operand optype = simm5> { +multiclass VALU_IV_V_X_I funct6> { def V : VALUVV, Sched<[WriteVIALUV_WorstCase, ReadVIALUV_WorstCase, ReadVIALUV_WorstCase, ReadVMask]>; def X : VALUVX, Sched<[WriteVIALUX_WorstCase, ReadVIALUV_WorstCase, ReadVIALUX_WorstCase, ReadVMask]>; - def I : VALUVI, + def I : VALUVI, Sched<[WriteVIALUI_WorstCase, ReadVIALUV_WorstCase, ReadVMask]>; } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td index e5cc808..db8c90e 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td @@ -139,7 +139,7 @@ let Predicates = [HasStdExtZvbb] in { 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>; + defm VWSLL_V : VSHT_IV_V_X_I<"vwsll", 0b110101>; } // Predicates = [HasStdExtZvbb] let Predicates = [HasStdExtZvbc] in { -- 2.7.4