[llvm] [DSE] Add predicated vector length store support for masked store elimination (PR #134175)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 3 00:20:25 PDT 2025
================
@@ -269,6 +269,41 @@ static OverwriteResult isMaskedStoreOverwrite(const Instruction *KillingI,
return OW_Unknown;
return OW_Complete;
}
+ if (KillingII->getIntrinsicID() == Intrinsic::vp_store) {
+ // Operands {0 , 1 , 2 , 3 }
+ // {StoredVal, VecPtr, Mask, VL}
+ // Types.
+ VectorType *KillingTy =
+ cast<VectorType>(KillingII->getArgOperand(0)->getType());
+ VectorType *DeadTy = cast<VectorType>(DeadII->getArgOperand(0)->getType());
+ if (KillingTy->getScalarSizeInBits() != DeadTy->getScalarSizeInBits())
----------------
topperc wrote:
I guess the masked store handling earlier in this function has the same issue?
https://github.com/llvm/llvm-project/pull/134175
More information about the llvm-commits
mailing list