llvm-project
77f04882 - [AArch64] Combine zext of deinterleaving shuffle. (#107201)

Commit
1 year ago
[AArch64] Combine zext of deinterleaving shuffle. (#107201) This is part 1 of a few patches that are intended to take deinterleaving shuffles with masks like `[0,4,8,12]`, where the shuffle is zero-extended to a larger size, and optimize away the deinterleave. In this case it converts them to `and(uzp1, mask)`, where the `uzp1` act upon the elements in the larger type size to get the lanes into the correct possitions, and the `and` performs the zext. It performs the combine fairly late, on the legalized type so that uitofp that are converted to uitofp(zext(..)) will also be handled.
Author
Parents
Loading