[llvm] [InstCombine] Simplify demanded bits of blendv mask operands (PR #173723)
Dhruva Narayan K via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 28 07:56:50 PST 2025
================
@@ -2890,7 +2890,24 @@ X86TTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const {
getNegativeIsTrueBoolVec(ConstantMask, IC.getDataLayout());
return SelectInst::Create(NewSelector, Op1, Op0, "blendv");
}
+ unsigned BitWidth = Mask->getType()->getScalarSizeInBits();
+ if (Mask->getType()->isIntOrIntVectorTy()) {
+ KnownBits Known(BitWidth);
+ if (IC.SimplifyDemandedBits(&II, 2, APInt::getSignMask(BitWidth), Known))
+ return ⅈ
+ } else if (auto *BC = dyn_cast<BitCastInst>(Mask)) {
+ Value *Src = BC->getOperand(0);
+ if (Src->getType()->isIntOrIntVectorTy()) {
+ unsigned SrcBitWidth = Src->getType()->getScalarSizeInBits();
+ if (SrcBitWidth == BitWidth) {
----------------
Xylecrack wrote:
oh yes working on it
https://github.com/llvm/llvm-project/pull/173723
More information about the llvm-commits
mailing list