<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">