[clang] [llvm] [PowerPC] Add Support for BCDSHIFT, BCDSHIFTR, BCDTRUNC, BCDUTRUNC, and BCDUSHIFT instruction support (PR #154715)

Aditi Medhane via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 6 00:30:52 PDT 2025


================
@@ -11151,6 +11161,20 @@ SDValue PPCTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
 
   SDLoc dl(Op);
 
+  // Lowers BCD intrinsics with rounding operand
+  auto MapNodeWithSplatVector = [&](unsigned Opcode) -> SDValue {
+    SDValue SplatVal =
+        DAG.getNode(ISD::SPLAT_VECTOR, dl, MVT::v4i32, Op.getOperand(2));
+    return DAG.getNode(Opcode, dl, MVT::v16i8, SplatVal, Op.getOperand(1),
+                       Op.getOperand(3));
+  };
+  // Lowers BCD intrinsics without rounding operand
+  auto MapNodeWithSplatVectorInt = [&](unsigned Opcode) -> SDValue {
----------------
AditiRM wrote:

Merged both the functions into one. 

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


More information about the cfe-commits mailing list