[llvm] [ISel] Introduce llvm.clmul[rh] intrinsics (PR #168731)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 19 12:55:47 PST 2025


================
@@ -8301,6 +8301,46 @@ SDValue TargetLowering::expandFunnelShift(SDNode *Node,
   return DAG.getNode(ISD::OR, DL, VT, ShX, ShY);
 }
 
+SDValue TargetLowering::expandCLMUL(SDNode *Node, SelectionDAG &DAG) const {
+  SDLoc DL(Node);
+  EVT VT = Node->getValueType(0);
+  SDValue X = Node->getOperand(0);
+  SDValue Y = Node->getOperand(1);
+  unsigned BW = VT.getScalarSizeInBits();
+
+  if (VT.isVector() && (isOperationLegalOrCustomOrPromote(
+                            Node->getOpcode(), VT.getVectorElementType()) ||
+                        !isOperationLegalOrCustom(ISD::VSELECT, VT)))
----------------
topperc wrote:

What is the significance of VSELECT here?

https://github.com/llvm/llvm-project/pull/168731


More information about the llvm-commits mailing list