[llvm] [RISCV] Handle zeroinitializer of vector tuple Type (PR #113995)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 30 08:28:47 PDT 2024


================
@@ -1900,6 +1900,13 @@ SDValue SelectionDAGBuilder::getValueImpl(const Value *V) {
                          DAG.getConstant(0, getCurSDLoc(), MVT::nxv16i1));
     }
 
+    if (VT.isRISCVVectorTuple()) {
+      assert(C->isNullValue() && "Can only zero this target type!");
+      return NodeMap[V] = DAG.getNode(
+                 ISD::SPLAT_VECTOR, getCurSDLoc(), VT,
+                 DAG.getConstant(0, getCurSDLoc(), MVT::getIntegerVT(8)));
----------------
topperc wrote:

> But its `TypeSize` is scalable, even it's same size, it's not the same.

The tuple TypeSize should also be scalable since its size depends on vscale.

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


More information about the llvm-commits mailing list