[llvm] [GlobalISel]: G_UNMERGE_VALUES for vectors with different element sizes (PR #133335)

Robert Imschweiler via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 16 02:59:09 PDT 2025


ro-i wrote:

But afaics, the MachineVerifier cannot catch invalid instructions that are created during legalization before they are being handled themselves in the same pass. Because that's what happens with my reproducer:
```
.. .. New MI: %645:_(<2 x s1>), %646:_(<2 x s1>), %647:_(<2 x s1>), %648:_(<2 x s1>), %649:_(<2 x s1>), %650:_(<2 x s1>), %651:_(<2 x s1>), %652:_(<2 x s1>), %653:_(<2 x s1>), %654:_(<2 x s1>), %655:_(<2 x s1>), %656:_(<2 x s1>), %657:_(<2 x s1>), %658:_(<2 x s1>), %659:_(<2 x s1>), %660:_(<2 x s1>) = G_UNMERGE_VALUES %87:_(<2 x s16>)
[...]
Legalizing: %645:_(<2 x s1>), %646:_(<2 x s1>), %647:_(<2 x s1>), %648:_(<2 x s1>), %649:_(<2 x s1>), %650:_(<2 x s1>), %651:_(<2 x s1>), %652:_(<2 x s1>), %653:_(<2 x s1>), %654:_(<2 x s1>), %655:_(<2 x s1>), %656:_(<2 x s1>), %657:_(<2 x s1>), %658:_(<2 x s1>), %659:_(<2 x s1>), %660:_(<2 x s1>) = G_UNMERGE_VALUES %87:_(<2 x s16>)
[<crash>]
```

https://github.com/llvm/llvm-project/pull/133335


More information about the llvm-commits mailing list