tree 0a4811225b39428f70435e22c38ae8cfb20be71c
parent 1dc46d45fcf7869f7e8edc5315aec6158f77966e
author Fabian Mora <fmora.dev@gmail.com> 1750766112 -0400
committer GitHub <noreply@github.com> 1750766112 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoWpIgCRC1aQ7uu5UhlAAAH+UQADDQa+PEvRBz8fURPeBj8WRA
 S0lo87JatWb+6837qdu7gUKXoB+81YfwW/D4j6PU3jRYvl9RpAIo8BvQcPA+UiSt
 bYOYg34fbBZrg4iezNmA85kBTeFCG6FhbFMHtmZQY69MXLdKu4PrAHUDIq/hjceB
 hs6kljQOdX4kErASNuRPhx57yN/Im7n/HXH+8HTSB0SGKtF/1W8VykgBw1xc63aO
 5aNWaFwZLsWaIwJXV7Ba6jrz4E5lw30YFerq8KVSIoxV/Qkn//BZGoFlG4dWcS0M
 xxDYqQalNtdfbm0GO1A5jC13IZ1m3DCodOJFxUJ+6rnP/42s7j17yAweusMDMZoH
 s4/n/5Wd26HuRzWmXFRZfOhDXgJ9i50wpvXTN5UrCEAxmyOFoy49csTHdYqX/8zM
 mVq0F0+d96VQgbifGhk0gS3onyveCXNs4cZdB5LrSKkj2ucmUwlX2LUjK/NC9du6
 vzmCNjIOqfDy5s/osgngRY0kPzixBZXXIMJyzZjRaSn3+er0lQ3HHUKExyPsXHte
 5qVe1QV3U4ml8EMFIqqIk29lDBOnwnZHbc/PfKqZK7yA4ZUuCugAV8IyIdtfFkLB
 nJUsh0ZL4Xc7XLb2fD8++G8V7Xce+e4MFb87XO5x69BjKrnooRkcV/0p+9tLQXPV
 Ha35kURrEhD+albbhHbE
 =yV44
 -----END PGP SIGNATURE-----
 

[mlir][affine] Fix min simplification in makeComposedAffineApply (#145376)

This patch fixes a bug discovered in the
`affine::makeComposedFoldedAffineApply` function when `composeAffineMin
== true`. The bug happened because the simplification assumed the
symbols appearing in the `affine.apply` op corresponded to symbols in
the `affine.min` op, and that's not always the case. For example:

```mlir
#map = affine_map<()[s0, s1] -> (s1)>
#map1 = affine_map<()[s0, s1] -> (s0 ceildiv s1)>
module {
  func.func @min_max_full_simplify() -> index {
    %0 = test.value_with_bounds {max = 64 : index, min = 32 : index}
    %1 = test.value_with_bounds {max = 64 : index, min = 32 : index}
    %2 = affine.min #map()[%0, %1]
    %3 = affine.apply #map1()[%2, %0]
    return %3 : index
  }
}
```

This patch also introduces the test `make_composed_folded_affine_apply`
transform operation to test this simplification. It also adds tests
ensuring we get correct behavior.

---------

Co-authored-by: Nicolas Vasilache <nico.vasilache@amd.com>