[llvm] [SelectionDAG] Add support for the 3-way comparison intrinsics [US]CMP (PR #91871)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 1 03:25:48 PDT 2024
================
@@ -1327,6 +1368,21 @@ void DAGTypeLegalizer::SplitVecRes_TernaryOp(SDNode *N, SDValue &Lo,
{Op0Hi, Op1Hi, Op2Hi, MaskHi, EVLHi}, Flags);
}
+void DAGTypeLegalizer::SplitVecRes_CMP(SDNode *N, SDValue &Lo, SDValue &Hi) {
+ LLVMContext &Ctxt = *DAG.getContext();
+ SDLoc dl(N);
+
+ SDValue LHS = N->getOperand(0);
+ SDValue RHS = N->getOperand(1);
+ EVT SplitResVT = N->getValueType(0).getHalfNumVectorElementsVT(Ctxt);
+
+ auto [LHSLo, LHSHi] = DAG.SplitVector(LHS, dl);
+ auto [RHSLo, RHSHi] = DAG.SplitVector(RHS, dl);
----------------
nikic wrote:
Might make sense to add a check for whether the value type also has TypeSplitVector action and call GetSplitVector in that case? Similar to what you do in ScalarizeVecRes_CMP.
https://github.com/llvm/llvm-project/pull/91871
More information about the llvm-commits
mailing list