[Mlir-commits] [mlir] [MLIR] ValueBoundsOpInterface: slice size from source size (PR #221756)
Alexey Kreshchuk
llvmlistbot at llvm.org
Wed Sep 9 01:10:39 PDT 2026
================
@@ -132,6 +132,21 @@ struct ExtractSliceOpInterface
++ctr;
if (ctr == dim) {
cstr.bound(value)[dim] == extractSliceOp.getMixedSizes()[i];
+ int64_t staticStride = extractSliceOp.getStaticStrides()[i];
+ if (staticStride > 0) {
+ // Encode in-bounds slice constraint:
+ OpFoldResult offset = extractSliceOp.getMixedOffsets()[i];
+ AffineExpr offsetExpr = cstr.getExpr(offset);
+ AffineExpr sourceDimExpr =
+ cstr.getExpr(extractSliceOp.getSource(), i);
+ cstr.bound(value)[dim] <=
+ (sourceDimExpr - offsetExpr).ceilDiv(staticStride);
+ // To derive value[dim] <= source[i] - offset:
+ cstr.bound(extractSliceOp.getSource())[i] >= offsetExpr;
----------------
krsch-mobileye wrote:
Done
https://github.com/llvm/llvm-project/pull/221756
More information about the Mlir-commits
mailing list