[llvm] ISel: introduce vector ISD::LRINT, ISD::LLRINT; custom RISCV lowering (PR #66924)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 17 09:11:11 PDT 2023
================
@@ -2945,6 +2945,34 @@ lowerFTRUNC_FCEIL_FFLOOR_FROUND(SDValue Op, SelectionDAG &DAG,
DAG.getTargetConstant(FRM, DL, Subtarget.getXLenVT()));
}
+// Expand vector LRINT and LLRINT by converting to the integer domain.
+static SDValue lowerVectorXRINT(SDValue Op, SelectionDAG &DAG,
+ const RISCVSubtarget &Subtarget) {
+ MVT VT = Op.getSimpleValueType();
+ assert(VT.isVector() && "Unexpected type");
+
+ SDLoc DL(Op);
+ SDValue Src = Op.getOperand(0);
+ MVT ContainerVT = VT;
+
+ if (VT.isFixedLengthVector()) {
+ ContainerVT = getContainerForFixedLengthVector(DAG, VT, Subtarget);
+ Src = convertToScalableVector(ContainerVT, Src, DAG, Subtarget);
+ }
+
+ // Freeze the source since we are increasing the number of uses.
+ Src = DAG.getFreeze(Src);
----------------
topperc wrote:
We don't need a freeze here
https://github.com/llvm/llvm-project/pull/66924
More information about the llvm-commits
mailing list