[clang] [llvm] [Clang][RISCV] Add packed widening shift intrinsics (PR #224790)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 11:46:21 PDT 2026


================
@@ -13089,6 +13089,26 @@ SDValue RISCVTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
     return DAG.getNode(getRVPShiftOpcode(IntNo), DL, Op.getValueType(),
                        Op.getOperand(1), ShAmt);
   }
+  case Intrinsic::riscv_pwsll:
+  case Intrinsic::riscv_pwsla: {
+    MVT VT = Op.getSimpleValueType();
+    SDValue Src = Op.getOperand(1);
+    MVT SrcVT = Src.getSimpleValueType();
+    if (!((VT == MVT::v4i16 && SrcVT == MVT::v4i8) ||
+          (VT == MVT::v2i32 && SrcVT == MVT::v2i16)))
+      reportFatalUsageError("unsupported packed widening shift intrinsic");
+
+    SDValue ShAmt = DAG.getAnyExtOrTrunc(Op.getOperand(2), DL, XLenVT);
----------------
topperc wrote:

Will this ever trunc? Can we use DAG.getNode(ISD::ANY_EXTEND?

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


More information about the llvm-commits mailing list