<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/77430>77430</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [MLIR][MemRef] memref.reshape lowering to LLVM bug for dynamic target shapes in i32
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:memref
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          bondhugula
      </td>
    </tr>
</table>

<pre>
    Lowering memref.reshape ops where the target shape is provided in i32 leads to unresolved conversions, which can't be lowered further.

INPUT
```func.func @reshape(%arg: memref<1x?x?x1xf32>, %shape: memref<2xi32>) {
  %reshape_84 = memref.reshape %arg(%shape) : (memref<1x?x?x1xf32>, memref<2xi32>) -> memref<?x?xf32>
 return
}
```
OUTPUT
```
$ bin/mlir-opt -finalize-memref-to-llvm  reshape.mlir
...
%14 = builtin.unrealized_conversion_cast %13 : i32 to i64
...
%22 = builtin.unrealized_conversion_cast %21 : i32 to i64
...
```
The unrealized conversions here won't cancel out or fold away on their own. Ideally, either `arith.index_cast` or `llvm.zext` should have been used here. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVN9v2zgM_mvkFyKGTPlH_eCHblmAAt3dYejutZBt2tZBlgJJTtL99QfZLrqtBxQHJEokkR8_fqQovVejIWpY8YkVx0QuYbKuaa3pp2VctExa2780j_ZKTpkRZpodDakjP8kzgT17uE7kCMJEEKQbKcB2pTycnb2onnpQBpRA0CR7D8HCYhx5qy_UQ2fNhZxX1niGn-E6qW6CThqGVYCWQMfI1MOwuDCRSxk_Mn6_rQ9__PX9aT8o-fYZFtOlcQGW850mwzuGhXQjE_d7Bkx8zm5MnNZvdhsEMvElEmBYbD4_m-JN7QY1sOrTFhKi7R7h-S4HJo6_y7NHXcPvTGqIyAzvPuDxn7EPTHx5u3l12502Uo7C4swuSnX8TZ1t--f3p_fC7VvMoVWG4WnWyh3sOcBhUEZq9YMOW-RDsAetLzPAnmYaTTf3NH0tEBbZJkm7KB2USWPNV5j--a3mz530IcqUiVWX2CXBgirz93iI_wMPsw_wfk37aSJ4A_y5KWHt7qvdGrKTpiMNdglgHQxW9yCv8gWsiQ9AObBXk8JDT1Lrl1hGUrFrgZVcOhWmVJmebitLVvKIwUoexUx_0G098pNddA-TvBC0RAYWT_1KIoWkb0Rfi1om1GQVz6sasyJPpqbGPK8573LJ7wSWKLsuQ1kPdVvIDPMqUQ1yzHnGa14jijyljlrRtWVFvKC6LFnOaZZKpysZ68ZEeb9QU1W54ImWLWm_zgjEtdrifm9DxDg2XBP9Du0yepZzrXzwb0hBBb0OmK-PD99YcYz_aP5GAyvevRj9OmiChcfHv79Cu4wwWAf9i5Gz6n6ZMX4fLMnidDOFcPZM3DM8MTyNKkxLm3Z2ZniKTPafw9nZf6gLDE9rgp7hac3x3wAAAP__oBOOXw">