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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR][sparse] Incorrect result when converting COO tensor
        </td>
    </tr>

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

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

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

<pre>
    Hi!

I noticed that converting COO to another format, like CSR, returns an incorrect result. Here's a script where COO is converted to CSR - it reproduces the issue: https://gist.github.com/mtsokol/2824f8f37c108fe51740fc6df4e5771f

```mlir
sparse_tensor.print %input : tensor<10x10xf64, #COO>
%res = sparse_tensor.convert %input : tensor<10x10xf64, #COO> to tensor<10x10xf64, #CSR>
sparse_tensor.print %res : tensor<10x10xf64, #CSR>
```

It looks like after calling `convert`, `crd[1]` in CSR is missing a bunch of elements. It's length should match `values` length but it's shorter:
```
---- Sparse Tensor ----
nse = 70
dim = ( 10, 10 )
lvl = ( 10, 10 )
pos[0] : ( 0, 70 )
crd[0] : ( 4, 3, 3, 7, 4, 8, 5, 2, 1, 9, 2, 4, 9, 9, 0, 5, 5, 1, 7, 6, 6, 0, 3, 0, 3, 1, 4, 2, 2, 8, 8, 8, 2, 2, 1, 4, 3, 5, 0, 8, 1, 2, 9, 8, 4, 1, 6, 6, 2, 9, 8, 9, 4, 7, 7, 9, 9, 0, 7, 8, 5, 0, 6, 3, 2, 6, 5, 9, 7, 4 )
crd[1] : ( 3, 3, 7, 4, 8, 5, 2, 1, 9, 2, 4, 9, 9, 0, 5, 5, 1, 7, 6, 6, 0, 3, 0, 3, 1, 4, 2, 2, 8, 8, 8, 2, 2, 1, 4, 3, 5, 0, 8, 1, 2, 9, 8, 4, 1, 6, 6, 2, 9, 8, 9, 4, 7, 7, 9, 9, 0, 7, 8, 5, 0, 6, 3, 2, 6, 5, 9, 7, 4, 8 )
values : ( 0.214585, 0.408529, 0.853403, 0.233939, 0.0583027, 0.281384, 0.293594, 0.661917, 0.557032, 0.783898, 0.664314, 0.406387, 0.81402, 0.166973, 0.0227121, 0.0900479, 0.722359, 0.461877, 0.161272, 0.501045, 0.152312, 0.69632, 0.446156, 0.381021, 0.301512, 0.630283, 0.361813, 0.0876499, 0.118006, 0.961898, 0.908581, 0.699707, 0.26587, 0.969176, 0.778751, 0.71689, 0.449362, 0.272242, 0.096391, 0.902602, 0.455776, 0.202363, 0.305957, 0.57922, 0.176773, 0.856614, 0.75852, 0.719463, 0.432093, 0.627309, 0.584098, 0.649847, 0.0844443, 0.415807, 0.0416142, 0.493991, 0.329861, 0.144524, 0.103403, 0.587645, 0.170593, 0.92512, 0.581061, 0.34687, 0.590915, 0.0228039, 0.958559, 0.482303, 0.782735, 0.08273 )
----
---- Sparse Tensor ----
nse = 70
dim = ( 10, 10 )
lvl = ( 10, 10 )
pos[1] : ( 0, 5, 10, 16, 22, 28, 33, 38, 43, 49, 55 )
crd[1] : ( 3, 5, 6, 7, 8, 2, 4, 6, 7, 9, 1, 2, 4, 6, 8, 9, 0, 1, 2, 3, 5, 7, 1, 2, 3, 7, 8, 9, 0, 1, 2, 5, 9, 0, 2, 3, 5, 6, 4, 6, 7, 8, 9, 1, 2, 4, 5, 8, 9, 0, 2, 4, 7, 8, 9 )
values : ( 0.69632, 0.381021, 0.0227121, 0.92512, 0.144524, 0.096391, 0.455776, 0.778751, 0.630283, 0.856614, 0.461877, 0.557032, 0.661917, 0.969176, 0.0876499, 0.26587, 0.664314, 0.590915, 0.118006, 0.432093, 0.202363, 0.446156, 0.301512, 0.34687, 0.408529, 0.449362, 0.853403, 0.176773, 0.361813, 0.71689, 0.214585, 0.0844443, 0.08273, 0.0583027, 0.406387, 0.272242, 0.170593, 0.722359, 0.293594, 0.0900479, 0.958559, 0.152312, 0.719463, 0.581061, 0.0228039, 0.501045, 0.75852, 0.782735, 0.233939, 0.161272, 0.415807, 0.103403, 0.0416142, 0.902602, 0.699707, 0.57922, 0.281384, 0.587645, 0.961898, 0.908581, 0.584098, 0.329861, 0.166973, 0.783898, 0.649847, 0.482303, 0.627309, 0.305957, 0.493991, 0.81402 )
----
```

I think it's a bug in conversion. I can try troubleshooting it, but I would need more details where to search for it.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsmM9u47wRwJ-GvhAxyOH_gw-bpMEXoEWA3d4LWaYtNbJkiHS-3bcvKJHyKJuk6KE9FTBoShwOZ4bkbzCqQmhPvfc7ou6JetxU19gM4-4cw_A6dJv9cPi1-6MlwAl7JOzb3D7Tfoht7Q80NlWk9dC_-TG2_Yk-vLzQONCqH2LjR3ocxnMVCTzQrn319OHH99QffbyOfaBVT9u-HsbR15GOPly7uKV_-NETMIFWNNRje4n0z8aPftLchrJWWnpI-ugdbdPkyzgcrrUPNDaetiFcPRHfaBPjJRDxjcATgadTG-L21Mbmut_Ww5nAU3aTwBNYkEd7FKbmzB694kayY60PR-mVMfyI3Seazb9z147zq3CpxuD_EX0fhnF7Gds-UgKq7S_XSJMl8wgRD5z95OznUcsUCQLi4eWFiL9kxaBGHygRj3StMHv9H6lMAfpc5Mf3ZdVPbJ8t-WoZpGMJyeqYRNoNw2uYN786Rj_Suuq6dFCIZtmpNCkp1KweD0Tdc6IeiWa07af9bQM9tyGkORXdX_u6ocOR-s6ffR_Dlj7H6bR0vj_FhoZmuHYHeq5i3SSVb1V39SGpywL7a6TtPCU0wxj9mI7HRz7c3d3d0R9TbOjfpxjQ9Goe7IOftslk4UN7np4JWMonfzijBNw82r11X4xehkDUPSPqcYp3EppkDJKZQ7OSmbZBLI1JzfTOpkalBqalUuOWR7k8Tg1bhNUiPKnSS8OWNW49vqiCpbHrBtYW3MxViyq7jMJikF2E-dqMdyJukTNL884ts44GW1SJRZ9eRt0tiO_DznHY_x_x_0LEp2m3sM-39nYbtsClsrPKrWRWwbzk1ioh2RyoLQjhRH7PlBUMTB6wXFiZ-04ol_tac8ezjFKGCZj7xgrrbJGRgsuysBY2y1suWRbnWjuTbWAAhgPPD44xabJFBkCo3JeaW2PKbA4ma1KMM5m95AoEz--108U2KTVX8xnZCstZWUswrhZxwcBmg4TmlhfjrNHSZRs4t4xlRU7zxWHHrLK8rOsMK0HUqvjutOMmTzXGGpXFDde2eCid0NkcMAASSki0cLysBLrEUCplikpgIHQxnymnyhYZByXkRpsScqu0LjtklFVlE7mTRYsUwFzuazCCZSuVlWzZaOmsNCVQUkpZJnNlSxCY5JoXX6QTrvgiwFmd-1xKBdkgzm7nU6Xwl901TBWLHCw7pyxnRY2QugRcOea4Wk6YZeWYO2XVcqgsiLKUsWBEmZD6t6t1S2H_4_zGf8tvM_5m8Zk3M8CmHREzZ2c2TX05OarUv6ezWjhj1myU6wG3huFt1K6pdhO5qTcfDJgv56r1wDt9-gP77GdGqg8Wuo2iuV8gFUEFg2RFMHQ08anGtxjfXAwDDCF8RTH7MHQxjDFgVtBCEMJgxvcDcw3fe0yVFUQRONGVw0kGwwwnHEwhzFnEQZy3VlSZbiX5PVfhHIPBiYGBUwnOZ6t8g9GAcwnmIsbNiis4EWGmIqzgbItzGMYlpt8KnRj9OMkgxOOkjcn5Wa7CLF_RGGXnVWJHvMfoxPkBZx9M-yn5f4TUj6sgGpu2fy1VRypiTqm4mcuf0A79lj7TuuppHH_ROA7XfedDMwxTQd1O1XOqWp7pn1Nt03t_oOdh9PTgY9V2IRfIcaDBV2PdpKqbtnG7OezEwQlXbfyOG8GldSDcptkBMC32Tkm514Ltj5bXHo7MHbnj0tSwaXfAQHLOBXNcKLc9enuo9kKx2lnvgRPJ_Llqu23XvZ23w3jaTCX3jnPNOGy6au-7MH1SAJiKZACiHjfjLsnf7a-nQCTr2hDDTUNsYzd9hvjbX5-_pxpQ3c-VaeL787vvBMnn_rcPD1MW21zHbve-8Ec1f1ow_91dxuGfvo4Enib7A4Gn7MLbDv4VAAD__7NE-sA">