diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 9d9e59a13f54ac..9f28f73de15821 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1943,7 +1943,7 @@ static SDValue lowerFROUND(SDValue Op, SelectionDAG &DAG, // Restore the original sign and merge the original source to masked off // lanes. Truncated = DAG.getNode(RISCVISD::FCOPYSIGN_VL, DL, ContainerVT, Truncated, - Src, Mask, Src, VL); + Src, Src, Mask, VL); if (!VT.isFixedLengthVector()) return Truncated; @@ -2080,7 +2080,7 @@ static SDValue matchSplatAsGather(SDValue SplatVal, MVT VT, const SDLoc &DL, std::tie(Mask, VL) = getDefaultVLOps(VT, ContainerVT, DL, DAG, Subtarget); SDValue Gather = DAG.getNode(RISCVISD::VRGATHER_VX_VL, DL, ContainerVT, Vec, - Idx, Mask, DAG.getUNDEF(ContainerVT), VL); + Idx, DAG.getUNDEF(ContainerVT), Mask, VL); if (!VT.isFixedLengthVector()) return Gather; @@ -2705,7 +2705,7 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG, assert(Lane < (int)NumElts && "Unexpected lane!"); SDValue Gather = DAG.getNode(RISCVISD::VRGATHER_VX_VL, DL, ContainerVT, V1, DAG.getConstant(Lane, DL, XLenVT), - TrueMask, DAG.getUNDEF(ContainerVT), VL); + DAG.getUNDEF(ContainerVT), TrueMask, VL); return convertFromScalableVector(VT, Gather, DAG, Subtarget); } } @@ -2916,15 +2916,15 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG, if (LHSIndexCounts.size() == 1) { int SplatIndex = LHSIndexCounts.begin()->getFirst(); Gather = DAG.getNode(GatherVXOpc, DL, ContainerVT, V1, - DAG.getConstant(SplatIndex, DL, XLenVT), TrueMask, - DAG.getUNDEF(ContainerVT), VL); + DAG.getConstant(SplatIndex, DL, XLenVT), + DAG.getUNDEF(ContainerVT), TrueMask, VL); } else { SDValue LHSIndices = DAG.getBuildVector(IndexVT, DL, GatherIndicesLHS); LHSIndices = convertToScalableVector(IndexContainerVT, LHSIndices, DAG, Subtarget); Gather = DAG.getNode(GatherVVOpc, DL, ContainerVT, V1, LHSIndices, - TrueMask, DAG.getUNDEF(ContainerVT), VL); + DAG.getUNDEF(ContainerVT), TrueMask, VL); } } @@ -2943,14 +2943,14 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG, if (RHSIndexCounts.size() == 1) { int SplatIndex = RHSIndexCounts.begin()->getFirst(); Gather = DAG.getNode(GatherVXOpc, DL, ContainerVT, V2, - DAG.getConstant(SplatIndex, DL, XLenVT), SelectMask, - Gather, VL); + DAG.getConstant(SplatIndex, DL, XLenVT), Gather, + SelectMask, VL); } else { SDValue RHSIndices = DAG.getBuildVector(IndexVT, DL, GatherIndicesRHS); RHSIndices = convertToScalableVector(IndexContainerVT, RHSIndices, DAG, Subtarget); - Gather = DAG.getNode(GatherVVOpc, DL, ContainerVT, V2, RHSIndices, - SelectMask, Gather, VL); + Gather = DAG.getNode(GatherVVOpc, DL, ContainerVT, V2, RHSIndices, Gather, + SelectMask, VL); } } @@ -5810,8 +5810,8 @@ SDValue RISCVTargetLowering::lowerVECTOR_REVERSE(SDValue Op, SDValue Indices = DAG.getNode(RISCVISD::SUB_VL, DL, IntVT, SplatVL, VID, Mask, VL); - return DAG.getNode(GatherOpc, DL, VecVT, Op.getOperand(0), Indices, Mask, - DAG.getUNDEF(VecVT), VL); + return DAG.getNode(GatherOpc, DL, VecVT, Op.getOperand(0), Indices, + DAG.getUNDEF(VecVT), Mask, VL); } SDValue RISCVTargetLowering::lowerVECTOR_SPLICE(SDValue Op, @@ -6132,7 +6132,7 @@ SDValue RISCVTargetLowering::lowerFixedLengthVectorFCOPYSIGNToRVV( std::tie(Mask, VL) = getDefaultVLOps(VT, ContainerVT, DL, DAG, Subtarget); SDValue CopySign = DAG.getNode(RISCVISD::FCOPYSIGN_VL, DL, ContainerVT, Mag, - Sign, Mask, DAG.getUNDEF(ContainerVT), VL); + Sign, DAG.getUNDEF(ContainerVT), Mask, VL); return convertFromScalableVector(VT, CopySign, DAG, Subtarget); } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td index c2ca767bcc4482..3c32fd63907016 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td @@ -43,9 +43,9 @@ def SDT_RISCVFPBinOp_VL : SDTypeProfile<1, 4, [SDTCisSameAs<0, 1>, def SDT_RISCVCopySign_VL : SDTypeProfile<1, 5, [SDTCisSameAs<0, 1>, SDTCisSameAs<0, 2>, SDTCisVec<0>, SDTCisFP<0>, - SDTCVecEltisVT<3, i1>, - SDTCisSameNumEltsAs<0, 3>, - SDTCisSameAs<0, 4>, + SDTCisSameAs<0, 3>, + SDTCVecEltisVT<4, i1>, + SDTCisSameNumEltsAs<0, 4>, SDTCisVT<5, XLenVT>]>; def riscv_vmv_v_x_vl : SDNode<"RISCVISD::VMV_V_X_VL", @@ -157,9 +157,9 @@ def riscv_vrgather_vx_vl : SDNode<"RISCVISD::VRGATHER_VX_VL", SDTypeProfile<1, 5, [SDTCisVec<0>, SDTCisSameAs<0, 1>, SDTCisVT<2, XLenVT>, - SDTCVecEltisVT<3, i1>, - SDTCisSameNumEltsAs<0, 3>, - SDTCisSameAs<0, 4>, + SDTCisSameAs<0, 3>, + SDTCVecEltisVT<4, i1>, + SDTCisSameNumEltsAs<0, 4>, SDTCisVT<5, XLenVT>]>>; def riscv_vrgather_vv_vl : SDNode<"RISCVISD::VRGATHER_VV_VL", SDTypeProfile<1, 5, [SDTCisVec<0>, @@ -167,9 +167,9 @@ def riscv_vrgather_vv_vl : SDNode<"RISCVISD::VRGATHER_VV_VL", SDTCisInt<2>, SDTCisSameNumEltsAs<0, 2>, SDTCisSameSizeAs<0, 2>, - SDTCVecEltisVT<3, i1>, - SDTCisSameNumEltsAs<0, 3>, - SDTCisSameAs<0, 4>, + SDTCisSameAs<0, 3>, + SDTCVecEltisVT<4, i1>, + SDTCisSameNumEltsAs<0, 4>, SDTCisVT<5, XLenVT>]>>; def riscv_vrgatherei16_vv_vl : SDNode<"RISCVISD::VRGATHEREI16_VV_VL", SDTypeProfile<1, 5, [SDTCisVec<0>, @@ -177,9 +177,9 @@ def riscv_vrgatherei16_vv_vl : SDNode<"RISCVISD::VRGATHEREI16_VV_VL", SDTCisInt<2>, SDTCVecEltisVT<2, i16>, SDTCisSameNumEltsAs<0, 2>, - SDTCVecEltisVT<3, i1>, - SDTCisSameNumEltsAs<0, 3>, - SDTCisSameAs<0, 4>, + SDTCisSameAs<0, 3>, + SDTCVecEltisVT<4, i1>, + SDTCisSameNumEltsAs<0, 4>, SDTCisVT<5, XLenVT>]>>; def SDT_RISCVSelect_VL : SDTypeProfile<1, 4, [ @@ -1326,8 +1326,8 @@ foreach vti = AllFloatVectors in { def : Pat<(riscv_fcopysign_vl (vti.Vector vti.RegClass:$rs1), (vti.Vector vti.RegClass:$rs2), - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag), (!cast("PseudoVFSGNJ_VV_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs1, @@ -1338,16 +1338,16 @@ foreach vti = AllFloatVectors in { (riscv_fneg_vl vti.RegClass:$rs2, (vti.Mask true_mask), VLOpFrag), - (vti.Mask true_mask), srcvalue, + (vti.Mask true_mask), VLOpFrag), (!cast("PseudoVFSGNJN_VV_"# vti.LMul.MX) vti.RegClass:$rs1, vti.RegClass:$rs2, GPR:$vl, vti.Log2SEW)>; def : Pat<(riscv_fcopysign_vl (vti.Vector vti.RegClass:$rs1), (SplatFPOp vti.ScalarRegClass:$rs2), - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag), (!cast("PseudoVFSGNJ_V"#vti.ScalarSuffix#"_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs1, @@ -1563,23 +1563,23 @@ foreach vti = AllIntegerVectors in { def : Pat<(vti.Vector (riscv_vrgather_vv_vl vti.RegClass:$rs2, vti.RegClass:$rs1, - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VV_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, vti.RegClass:$rs1, (vti.Mask V0), GPR:$vl, vti.Log2SEW, TAIL_AGNOSTIC)>; def : Pat<(vti.Vector (riscv_vrgather_vx_vl vti.RegClass:$rs2, GPR:$rs1, - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VX_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, GPR:$rs1, (vti.Mask V0), GPR:$vl, vti.Log2SEW, TAIL_AGNOSTIC)>; def : Pat<(vti.Vector (riscv_vrgather_vx_vl vti.RegClass:$rs2, uimm5:$imm, - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VI_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, uimm5:$imm, @@ -1597,8 +1597,8 @@ foreach vti = AllIntegerVectors in { def : Pat<(vti.Vector (riscv_vrgatherei16_vv_vl vti.RegClass:$rs2, (ivti.Vector ivti.RegClass:$rs1), - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast(inst#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, ivti.RegClass:$rs1, @@ -1628,15 +1628,15 @@ foreach vti = AllFloatVectors in { def : Pat<(vti.Vector (riscv_vrgather_vv_vl vti.RegClass:$rs2, (ivti.Vector vti.RegClass:$rs1), - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VV_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, vti.RegClass:$rs1, (vti.Mask V0), GPR:$vl, vti.Log2SEW, TAIL_AGNOSTIC)>; def : Pat<(vti.Vector (riscv_vrgather_vx_vl vti.RegClass:$rs2, GPR:$rs1, - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VX_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, GPR:$rs1, @@ -1644,8 +1644,8 @@ foreach vti = AllFloatVectors in { def : Pat<(vti.Vector (riscv_vrgather_vx_vl vti.RegClass:$rs2, uimm5:$imm, - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast("PseudoVRGATHER_VI_"# vti.LMul.MX#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, uimm5:$imm, @@ -1662,8 +1662,8 @@ foreach vti = AllFloatVectors in { def : Pat<(vti.Vector (riscv_vrgatherei16_vv_vl vti.RegClass:$rs2, (ivti.Vector ivti.RegClass:$rs1), - (vti.Mask V0), vti.RegClass:$merge, + (vti.Mask V0), VLOpFrag)), (!cast(inst#"_MASK") vti.RegClass:$merge, vti.RegClass:$rs2, ivti.RegClass:$rs1,