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 @@ -199,23 +199,25 @@ class VSSSchedMC : VSSSched; // Vector Indexed Loads and Stores -class VLXSched : SchedCommon< - [!cast("WriteVLD" #isOrdered #"X" #dataEEW #"_" #dataEMUL)], - [ReadVLDX, !cast("ReadVLD" #isOrdered #"XV_" #idxEMUL)], +class VLXSched : SchedCommon< + [!cast("WriteVLD" # order #"X" #dataEEW #"_" #dataEMUL)], + [ReadVLDX, !cast("ReadVLD" # order #"XV_" #idxEMUL)], forceMasked >; -class VLXSchedMC: +class VLXSchedMC: VLXSched; -class VSXSched : SchedCommon< - [!cast("WriteVST" #isOrdered #"X" #dataEEW #"_" #dataEMUL)], - [!cast("ReadVST" #isOrdered #"X" #dataEEW #"_" #dataEMUL), - ReadVSTX, !cast("ReadVST" #isOrdered #"XV_" #idxEMUL)], +class VSXSched : SchedCommon< + [!cast("WriteVST" # order #"X" #dataEEW #"_" #dataEMUL)], + [!cast("ReadVST" # order #"X" #dataEEW #"_" #dataEMUL), + ReadVSTX, !cast("ReadVST" # order #"XV_" #idxEMUL)], forceMasked >; -class VSXSchedMC: +class VSXSchedMC: VSXSched; // Unit-stride Fault-Only-First Loads @@ -264,23 +266,25 @@ forceMasked=1>; // Indexed Segment Loads and Stores -class VLXSEGSched : SchedCommon< - [!cast("WriteVL" #isOrdered #"XSEG" #nf #"e" #eew #"_" #emul)], - [ReadVLDX, !cast("ReadVLD" #isOrdered #"XV_" #emul)], +class VLXSEGSched : SchedCommon< + [!cast("WriteVL" # order #"XSEG" #nf #"e" #eew #"_" #emul)], + [ReadVLDX, !cast("ReadVLD" # order #"XV_" #emul)], forceMasked >; -class VLXSEGSchedMC: +class VLXSEGSchedMC: VLXSEGSched; -class VSXSEGSched : SchedCommon< - [!cast("WriteVS" #isOrdered #"XSEG" #nf #"e" #eew #"_" #emul)], - [!cast("ReadVST" #isOrdered #"X" #eew #"_" #emul), - ReadVSTX, !cast("ReadVST" #isOrdered #"XV_" #emul)], +class VSXSEGSched : SchedCommon< + [!cast("WriteVS" # order #"XSEG" #nf #"e" #eew #"_" #emul)], + [!cast("ReadVST" # order #"X" #eew #"_" #emul), + ReadVSTX, !cast("ReadVST" # order #"XV_" #emul)], forceMasked >; -class VSXSEGSchedMC: +class VSXSEGSchedMC: VSXSEGSched; //===----------------------------------------------------------------------===// @@ -530,17 +534,17 @@ def VLUXEI # n # _V : VIndexedLoad, - VLXSchedMC; + VLXSchedMC; def VLOXEI # n # _V : VIndexedLoad, - VLXSchedMC; + VLXSchedMC; def VSUXEI # n # _V : VIndexedStore, - VSXSchedMC; + VSXSchedMC; def VSOXEI # n # _V : VIndexedStore, - VSXSchedMC; + VSXSchedMC; } } @@ -1733,19 +1737,19 @@ def VLUXSEG#nf#EI#eew#_V : VIndexedSegmentLoad, - VLXSEGSchedMC; + VLXSEGSchedMC; def VLOXSEG#nf#EI#eew#_V : VIndexedSegmentLoad, - VLXSEGSchedMC; + VLXSEGSchedMC; def VSUXSEG#nf#EI#eew#_V : VIndexedSegmentStore, - VSXSEGSchedMC; + VSXSEGSchedMC; def VSOXSEG#nf#EI#eew#_V : VIndexedSegmentStore, - VSXSEGSchedMC; + VSXSEGSchedMC; } } } // Predicates = [HasVInstructions] @@ -1778,19 +1782,19 @@ def VLUXSEG #nf #EI64_V : VIndexedSegmentLoad, - VLXSEGSchedMC; + VLXSEGSchedMC; def VLOXSEG #nf #EI64_V : VIndexedSegmentLoad, - VLXSEGSchedMC; + VLXSEGSchedMC; def VSUXSEG #nf #EI64_V : VIndexedSegmentStore, - VSXSEGSchedMC; + VSXSEGSchedMC; def VSOXSEG #nf #EI64_V : VIndexedSegmentStore, - VSXSEGSchedMC; + VSXSEGSchedMC; } } // Predicates = [HasVInstructionsI64, IsRV64] 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 @@ -1782,15 +1782,14 @@ defvar Vreg = dataEMUL.vrclass; defvar IdxVreg = idxEMUL.vrclass; defvar HasConstraint = !ne(dataEEW, idxEEW); - defvar Order = !if(Ordered, "O", "U"); let VLMul = dataEMUL.value in { def "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoILoadNoMask, - VLXSched; + VLXSched; def "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoILoadMask, RISCVMaskedPseudo, - VLXSched; + VLXSched; } } } @@ -1853,14 +1852,13 @@ defvar idxEMUL = !cast("V_" # IdxLInfo); defvar Vreg = dataEMUL.vrclass; defvar IdxVreg = idxEMUL.vrclass; - defvar Order = !if(Ordered, "O", "U"); let VLMul = dataEMUL.value in { def "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoIStoreNoMask, - VSXSched; + VSXSched; def "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoIStoreMask, - VSXSched; + VSXSched; } } } @@ -3528,18 +3526,17 @@ defvar idxEMUL = !cast("V_" # IdxLInfo); defvar DataVreg = dataEMUL.vrclass; defvar IdxVreg = idxEMUL.vrclass; - defvar Order = !if(Ordered, "O", "U"); let VLMul = dataEMUL.value in { foreach nf = NFSet.L in { defvar Vreg = SegRegClass.RC; def nf # "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoISegLoadNoMask, - VLXSEGSched; + VLXSEGSched; def nf # "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoISegLoadMask, - VLXSEGSched; + VLXSEGSched; } } } @@ -3595,18 +3592,17 @@ defvar idxEMUL = !cast("V_" # IdxLInfo); defvar DataVreg = dataEMUL.vrclass; defvar IdxVreg = idxEMUL.vrclass; - defvar Order = !if(Ordered, "O", "U"); let VLMul = dataEMUL.value in { foreach nf = NFSet.L in { defvar Vreg = SegRegClass.RC; def nf # "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo : VPseudoISegStoreNoMask, - VSXSEGSched; + VSXSEGSched; def nf # "EI" # idxEEW # "_V_" # IdxLInfo # "_" # DataLInfo # "_MASK" : VPseudoISegStoreMask, - VSXSEGSched; + VSXSEGSched; } } }