[PATCH] D77475: GlobalISel: Combine G_UNMERGE_VALUES with G_TRUNC

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 2 13:46:24 PDT 2020


arsenm added a comment.

In D77475#2008333 <https://reviews.llvm.org/D77475#2008333>, @aemerson wrote:

> The description says:
>
> > Try to eliminate an illegal source register type in the artifact combiner to avoid this from happening.
>
> I don't see this happening in this patch.


It eliminates the intermediate illegal vector. In the example in the comment, this is the <4 x s8> vector. It is replaced by doing the unmerge on the original <4 x s32> vector, and inserting scalar G_TRUNCs. Also see my previous question about what "better" really means in the artifact combiner context. Skipping this either or both input operations are already legal blocks this in cases where it still would produce fewer artifacts.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77475/new/

https://reviews.llvm.org/D77475





More information about the llvm-commits mailing list