diff --git a/mlir/test/Dialect/Affine/canonicalize.mlir b/mlir/test/Dialect/Affine/canonicalize.mlir --- a/mlir/test/Dialect/Affine/canonicalize.mlir +++ b/mlir/test/Dialect/Affine/canonicalize.mlir @@ -694,3 +694,24 @@ } return } + +// ----- + +// Ensure bounding maps of affine.for is composed + +// CHECK: #map = affine_map<()[s0] -> (s0 + 2)> +// CHECK-NEXT: module { +// CHECK-NEXT: func @compose_affine_for_bounds(%arg0: index) { +// CHECK-NEXT: affine.for %arg1 = 0 to #map()[%arg0] { +// CHECK-NEXT: "foo"() : () -> () +// CHECK-NEXT: } +// CHECK-NEXT: return +// CHECK-NEXT: } + +func @compose_affine_for_bounds(%arg0: index) { + %v = affine.apply affine_map<(d0) -> (d0 + 2)>(%arg0) + affine.for %i = 0 to %v { + "foo"() : () -> () + } + return +} \ No newline at end of file