[Mlir-commits] [mlir] [mlir][VectorOps] Add fold `ExtractOp(CreateMask) -> CreateMask` (PR #69456)
Benjamin Maxwell
llvmlistbot at llvm.org
Fri Oct 20 03:00:20 PDT 2023
================
@@ -100,6 +100,20 @@ static MaskFormat getMaskFormat(Value mask) {
return MaskFormat::AllTrue;
if (allFalse)
return MaskFormat::AllFalse;
+ } else if (auto m = mask.getDefiningOp<CreateMaskOp>()) {
+ // Finds all-false create_masks. An all-true create_mask requires all
+ // dims to be constants, so that'll be folded to a constant_mask, then
+ // detected in the constant_mask case.
+ auto maskOperands = m.getOperands();
+ for (Value operand : maskOperands) {
+ if (auto constantOp = operand.getDefiningOp<arith::ConstantOp>()) {
+ int64_t dimSize =
+ llvm::cast<IntegerAttr>(constantOp.getValue()).getInt();
+ if (dimSize <= 0)
----------------
MacDue wrote:
I don't think so, the docs say:
> If operand-value is negative, it is treated as if it were zero
https://github.com/llvm/llvm-project/pull/69456
More information about the Mlir-commits
mailing list