diff --git a/llvm/lib/Target/RISCV/RISCVRegisterInfo.td b/llvm/lib/Target/RISCV/RISCVRegisterInfo.td index 2e709ba5a5483..77523647fbbe0 100644 --- a/llvm/lib/Target/RISCV/RISCVRegisterInfo.td +++ b/llvm/lib/Target/RISCV/RISCVRegisterInfo.td @@ -710,12 +710,13 @@ foreach m = [1, 2, 4] in { } } -class VReg regTypes, dag regList, int Vlmul> +class VReg regTypes, dag regList, int Vlmul, int nf = 1> : RISCVRegisterClass { let IsVRegClass = 1; let VLMul = Vlmul; + let NF = nf; let Size = !mul(VLMul, NF, 64); let CopyCost = !mul(VLMul, NF); @@ -799,17 +800,15 @@ class VTupRegList { foreach m = LMULList in { foreach nf = NFList.L in { - let NF = nf in { - def "VRN" # nf # "M" # m # "NoV0" - : VReg.L, - (add !cast("VN" # nf # "M" # m # "NoV0")), - m>; - def "VRN" # nf # "M" # m - : VReg.L, - (add !cast("VN" # nf # "M" # m # "NoV0"), - !cast("VN" # nf # "M" # m # "V0")), - m>; - } + def "VRN" # nf # "M" # m # "NoV0" + : VReg.L, + (add !cast("VN" # nf # "M" # m # "NoV0")), + m, nf>; + def "VRN" # nf # "M" # m + : VReg.L, + (add !cast("VN" # nf # "M" # m # "NoV0"), + !cast("VN" # nf # "M" # m # "V0")), + m, nf>; } }