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 @@ -2870,23 +2870,29 @@ def "_VVM" # "_" # m.MX : VPseudoBinaryCarryIn.R, - m.vrclass, m.vrclass, m, 1, "">; + m.vrclass, m.vrclass, m, 1, "">, + Sched<[WriteVIMergeV_MX, ReadVIMergeV_MX, ReadVIMergeV_MX, ReadVMask]>; def "_VXM" # "_" # m.MX : VPseudoBinaryCarryIn.R, - m.vrclass, GPR, m, 1, "">; + m.vrclass, GPR, m, 1, "">, + Sched<[WriteVIMergeX_MX, ReadVIMergeV_MX, ReadVIMergeX_MX, ReadVMask]>; def "_VIM" # "_" # m.MX : VPseudoBinaryCarryIn.R, - m.vrclass, simm5, m, 1, "">; + m.vrclass, simm5, m, 1, "">, + Sched<[WriteVIMergeI_MX, ReadVIMergeV_MX, ReadVMask]>; // Tied versions to allow codegen control over the tail elements def "_VVM" # "_" # m.MX # "_TU" : VPseudoTiedBinaryCarryIn.R, - m.vrclass, m.vrclass, m, 1, "">; + m.vrclass, m.vrclass, m, 1, "">, + Sched<[WriteVIMergeV_MX, ReadVIMergeV_MX, ReadVIMergeV_MX, ReadVMask]>; def "_VXM" # "_" # m.MX # "_TU": VPseudoTiedBinaryCarryIn.R, - m.vrclass, GPR, m, 1, "">; + m.vrclass, GPR, m, 1, "">, + Sched<[WriteVIMergeX_MX, ReadVIMergeV_MX, ReadVIMergeX_MX, ReadVMask]>; def "_VIM" # "_" # m.MX # "_TU": VPseudoTiedBinaryCarryIn.R, - m.vrclass, simm5, m, 1, "">; + m.vrclass, simm5, m, 1, "">, + Sched<[WriteVIMergeI_MX, ReadVIMergeV_MX, ReadVMask]>; } }