[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