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