[llvm] [IR] Add llvm `clmul` intrinsic (PR #140301)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Tue May 20 10:22:54 PDT 2025


================
@@ -8131,6 +8131,37 @@ 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 V1 = Node->getOperand(0);
+  SDValue V2 = Node->getOperand(1);
+  unsigned NumBitsPerElt = VT.getScalarSizeInBits();
+
+  // Only expand vector types if we have the appropriate vector bit operations.
+  // This includes the operations needed to expand CTPOP if it isn't supported.
----------------
topperc wrote:

This CTPOP reference seems out of date.

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


More information about the llvm-commits mailing list