diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoV.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoV.td @@ -125,16 +125,20 @@ ReadVSTX, ReadVSTSX, ReadVMask ]>; -class VLXSched : Sched<[ - !cast("WriteVLD" #o #"X" #n #"_" # suffix), +class VLXSched : Sched<[ + !cast("WriteVLD" #o #"X" #n #"_" # dataSuffix), ReadVLDX, - !cast("ReadVLD" #o #"XV_" # suffix), ReadVMask + !cast("ReadVLD" #o #"XV_" # idxSuffix), ReadVMask ]>; -class VSXSched : Sched<[ - !cast("WriteVST" #o #"X" #n #"_"#suffix), - !cast("ReadVST" #o #"X" #n #"_"#suffix), - ReadVSTX, !cast("ReadVST" #o #"XV_"#suffix), ReadVMask +class VSXSched : Sched<[ + !cast("WriteVST" #o #"X" #n #"_"#dataSuffix), + !cast("ReadVST" #o #"X" #n #"_"#dataSuffix), + ReadVSTX, !cast("ReadVST" #o #"XV_"#idxSuffix), ReadVMask ]>; class VLFSched : Sched<[ diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -1735,7 +1735,7 @@ // Calculate emul = eew * lmul / sew defvar octuple_emul = !srl(!mul(eew, octuple_lmul), log2.val); if !and(!ge(octuple_emul, 1), !le(octuple_emul, 64)) then { - defvar LInfo = lmul.MX; + defvar DataLInfo = lmul.MX; defvar IdxLInfo = octuple_to_str.ret; defvar idx_lmul = !cast("V_" # IdxLInfo); defvar Vreg = lmul.vrclass; @@ -1743,16 +1743,16 @@ defvar HasConstraint = !ne(sew, eew); defvar Order = !if(Ordered, "O", "U"); let VLMul = lmul.value in { - def "EI" # eew # "_V_" # IdxLInfo # "_" # LInfo : + def "EI" # eew # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoILoadNoMask, - VLXSched; - def "EI" # eew # "_V_" # IdxLInfo # "_" # LInfo # "_TU": + VLXSched; + def "EI" # eew # "_V_" # IdxLInfo # "_" # DataLInfo # "_TU": VPseudoILoadNoMaskTU, - VLXSched; - def "EI" # eew # "_V_" # IdxLInfo # "_" # LInfo # "_MASK" : + VLXSched; + def "EI" # eew # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoILoadMask, RISCVMaskedPseudo, - VLXSched; + VLXSched; } } } @@ -1809,19 +1809,19 @@ // Calculate emul = eew * lmul / sew defvar octuple_emul = !srl(!mul(eew, octuple_lmul), log2.val); if !and(!ge(octuple_emul, 1), !le(octuple_emul, 64)) then { - defvar LInfo = lmul.MX; + defvar DataLInfo = lmul.MX; defvar IdxLInfo = octuple_to_str.ret; defvar idx_lmul = !cast("V_" # IdxLInfo); defvar Vreg = lmul.vrclass; defvar IdxVreg = idx_lmul.vrclass; defvar Order = !if(Ordered, "O", "U"); let VLMul = lmul.value in { - def "EI" # eew # "_V_" # IdxLInfo # "_" # LInfo : + def "EI" # eew # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoIStoreNoMask, - VSXSched; - def "EI" # eew # "_V_" # IdxLInfo # "_" # LInfo # "_MASK" : + VSXSched; + def "EI" # eew # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoIStoreMask, - VSXSched; + VSXSched; } } }