[llvm] [ConstantFolding] Fold scalable get_active_lane_masks (PR #156659)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 3 23:48:47 PDT 2025
================
@@ -4238,6 +4238,13 @@ static Constant *ConstantFoldScalableVectorCall(
return ConstantInt::getFalse(SVTy);
}
+ case Intrinsic::get_active_lane_mask: {
+ auto Op0 = cast<ConstantInt>(Operands[0])->getValue();
+ auto Op1 = cast<ConstantInt>(Operands[1])->getValue();
+ if ((Op0.uge(Op1) && (!Op1.isZero())))
----------------
davemgreen wrote:
I don't think this needs a check for Op1.isZero. It is perfectly valid to refine poison to zero.
It would be converting the whilelo -> get_active_lane_mask that would be invalid, if zero produced poison, as it converts from zero->poison.
https://github.com/llvm/llvm-project/pull/156659
More information about the llvm-commits
mailing list