[llvm] [RISCV] Use vwadd.vx for splat vector with extension (PR #87249)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 8 03:27:49 PDT 2024


================
@@ -13781,6 +13784,57 @@ struct NodeExtensionHelper {
   /// Check if this node needs to be fully folded or extended for all users.
   bool needToPromoteOtherUsers() const { return EnforceOneUse; }
 
+  void fillUpExtensionSupportForSplat(SDNode *Root, SelectionDAG &DAG,
+                                      const RISCVSubtarget &Subtarget) {
+    unsigned Opc = OrigOperand.getOpcode();
+    MVT VT = OrigOperand.getSimpleValueType();
+
+    assert((Opc == ISD::SPLAT_VECTOR || Opc == RISCVISD::VMV_V_X_VL) &&
+           "Unexpected Opcode");
+
+    if (Opc == ISD::SPLAT_VECTOR && !VT.isVector())
+      return;
----------------
lukel97 wrote:

Is this ever possible?

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


More information about the llvm-commits mailing list