tree 045cebfdfadc3bc8edcdd64a770bbff80b0358c2
parent 4da5e9dd320e9d48be0fa05ba1a8faf50fb53834
author Alaa Ali <alaa.leithy@gmail.com> 1743760018 -0400
committer GitHub <noreply@github.com> 1743760018 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn76qSCRC1aQ7uu5UhlAAAjkIQAFX/W4WnjF/Kxmw9Nx5UaA0H
 rC71ZDAKvVGft61V154XbnzgR2zE95R+AHjldx5r06LsoyKy0xKfWt6qmb1T+Dnt
 Gls1Jp4ZDQ5H7Sf+u4ScsieyZiLLJRKJKC4nXNr50xDDnS2KtYpMdPYnqe/sTj+c
 0+8utRxPSZqdhKtXwk05AUNSKiEItwfhVF2NrV9+8QkS9rPp11UbNgL4IzQLykVJ
 24MFq+fwwfBGL3cHEBsWD/JrZhwKQZe84QUuRGMFvaEDzjMWLoheHFU18Zw3nYgL
 +2BAajg811fELFBREA/pTqQSzjYtrgqYzWdNZoDAYoKUOFKdIQXB3Of3i+3Ge68k
 mnTM/zLQqpXiBWGld7y+4gVWAqeTrFzgybGPr3t2vGhVtm2G/z15uJ5uvKvmXdpw
 YsCKrJHX+YLkJoJ417R1bK45ltj/g4aAIoz2+MVdLrmiGiGTQ3+dksLLiFfI288F
 +4bT22S747A4UOt3KYF3UTsNTh70r1FhMaWmH9pB9jrQINBD0QR2xsCkdexpr+v/
 2aCn9jodKNvprvd0PnLxnOSxqWqujByTkusQZwgHBPXlcerzTzWvX7IoncM21J6L
 u35zvDoq0CUoq04aCMdnjJMAaGovqnyR1EDEEWxdlBtGMOOUl1zRPpTUsdOysHjv
 CnkdPGe6lrx/eyJ1VDz5
 =pSfg
 -----END PGP SIGNATURE-----
 

[MLIR] Fix canonicalization pattern for 'shape.shape_of' (#134234)

This PR will fix a bug in a canonicalization pattern (operation
shape.shape_of: shape of reshape)

```
// Before
func.func @f(%arg0: tensor<?x1xf32>, %arg1: tensor<3xi32>) -> tensor<3xindex> {
  %reshape = tensor.reshape %arg0(%arg1) : (tensor<?x1xf32>, tensor<3xi32>) -> tensor<?x1x1xf32>
  %0 = shape.shape_of %reshape : tensor<?x1x1xf32> -> tensor<3xindex>
  return %0 : tensor<3xindex>
}
//This is will error out as follows:
error: 'tensor.cast' op operand type 'tensor<3xi32>' and result type 'tensor<3xindex>' are cast incompatible
  %0 = shape.shape_of %reshape : tensor<?x1x1xf32> -> tensor<3xindex>
       ^
note: see current operation: %0 = "tensor.cast"(%arg1) : (tensor<3xi32>) -> tensor<3xindex>
```

```
// After
func.func @f(%arg0: tensor<?x1xf32>, %arg1: tensor<3xi32>) -> tensor<3xindex> {
  %0 = arith.index_cast %arg1 : tensor<3xi32> to tensor<3xindex>
  return %0 : tensor<3xindex>
}
```
See file canonicalize.mlir in the change list for an example.

For the context, this bug was found while running a test on Keras 3, the
canonicalizer errors out due to an invalid tensor.cast operation when
the batch size is dynamic.
The operands of the op are tensor<3xi32> cast to tensor<3xindex>.
This change is related to a previous PR:
https://github.com/llvm/llvm-project/pull/98531

---------

Co-authored-by: Alaa Ali <alaaali@ah-alaaali-l.dhcp.mathworks.com>
Co-authored-by: Mehdi Amini <joker.eph@gmail.com>