[llvm] [RISCV] Add vmv.x.s to RISCVOptWInstrs. (PR #74519)
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 6 11:27:22 PST 2023
================
@@ -368,6 +368,18 @@ static bool isSignExtendingOpW(const MachineInstr &MI,
return MI.getOperand(1).getReg() == RISCV::X0;
case RISCV::PseudoAtomicLoadNand32:
return true;
+ case RISCV::PseudoVMV_X_S_MF8:
+ case RISCV::PseudoVMV_X_S_MF4:
+ case RISCV::PseudoVMV_X_S_MF2:
+ case RISCV::PseudoVMV_X_S_M1:
+ case RISCV::PseudoVMV_X_S_M2:
+ case RISCV::PseudoVMV_X_S_M4:
+ case RISCV::PseudoVMV_X_S_M8: {
+ // vmv.x.s returns a sign extended value if log2(sew) <= 5.
----------------
preames wrote:
I found this very confusing at first.
The relevant wording is "If SEW < XLEN, the value is sign-extended to XLEN bits." It's given the fact that XLEN must be 64 here, your code is correct, but maybe reword slightly?
https://github.com/llvm/llvm-project/pull/74519
More information about the llvm-commits
mailing list