<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56033>56033</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`tensor.expand_shape` does not work for multiple dynamic dimensions
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Shukla-Gaurav
</td>
</tr>
</table>
<pre>
The `tensor.expand_shape` currently does not handle dynamic dimensions properly.
for example, the following IR generates error:
%1 = "tensor.expand_shape"(%0) {reassociation = [[0, 1], [2], [3]]} : (tensor<?x6x6xf32>) -> tensor<?x?x6x6xf32>
USE CASE:
This is specifically required for efficient lowering of `aten.matmul` operation in torch-MLIR. In order to lower it to `linalg.BatchMatmul`, following approach seems better:
1. broadcast(batch dimensions) the less rank matrix,
2. collapse the batch dimensions
3. matrix multiply by `linalg.BatchMatmul`
5. expand the batch dimensions
The last step fails in case of dynamic dimensions.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1U9tS2zAQ_Rr5ZSceW8r1wQ-BkA4z5QXoc0eW17GKLLmSDMnfd-UAaSmMNdZtL2fP0dauOVWPHQJbFhFtcD7H4yBt8zN0ckA6BTV6jzaaEzQOA1gXoSMDg9CcrOy1gkb35KqdDTB4N6A3p5wVO1ZsW-cBj7IfDDJ-DZEStc4Y96LtAW7v4YAWvYwUFr13nont2Q8YX5TAxI4W_DNcnDO-JqOC8Q2w1ZVHGYJTWkaCcXZcXNEoUtqSLXZppj2_LEVa0liRrUgZ1-dETFwzsT8u6WsFZ-ImpZjRDP_cf7CZYJ__Px5u4Hr7cPNezWOnA9AIAyrdaiUNkenx96g9NjBx1NKxJpaBuEGf2HFt0oS4sXkvYz-apEUi91yithCdV93s7vvtfQ63Fpxv0NPhOQTomNbkZLSV5pBfyai6u7dIiYOLEnIg3aTqICD2AWqMES9ilDnUdN0oGSKxVKdAf2me6EnCGgwBvLRPQHi9Pk40TwF4DopyySHgZPkxwquZyF89gTBGPRBJ9enrCiafRQ7nd_F5YHgTgOAReggRB2ilNiERSAVh4vn_d5xnTSWajdjILOposPq6Pd6b4sX5p0nMV_Sf9Uc2elN1MQ4hscv3NA46dmOdK9fTxpjnt2lGkvxCRYzvdQgjEs_7xbIQIusquW6wlqKVS7VRTal4WzSqLiTyzWI1xzYzskYTqtQDnFt8gSlE6prFLtMVLzgvluW8XJalmOdrtVqpBufrdrOSpSrYvMCeSMoTjtz5Q-arCVI9HgJdGh1iuFxS5-mDRZzSUXw5xs756qEbn4ycfZOjl8_ZBKCaCvgDavVzzg">