[GlobalISel] Combine scalar unmerge(trunc)
authorDominik Montada <dominik.montada@hightec-rt.com>
Thu, 7 May 2020 10:27:57 +0000 (12:27 +0200)
committerDominik Montada <dominik.montada@hightec-rt.com>
Tue, 2 Jun 2020 06:56:18 +0000 (08:56 +0200)
commit052c962ced71c5130d709186b78c37a4adc59d66
tree42b91600aec8a8d9ff0ff99451348e3c6513df5e
parentb3c6a36dba569ee7f4353173cfa3e6264ba8d7af
[GlobalISel] Combine scalar unmerge(trunc)

Summary:
Combine unmerge(trunc) to enable other merge combines.
Without this combine, the scalar unmerge(trunc(merge))
pattern cannot be combined and easily lead to
hard-to-legalize merge/unmerge artifacts.

Reviewed By: arsenm

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79567
llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
llvm/test/CodeGen/AArch64/GlobalISel/legalize-unmerge-values.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-unmerge-values.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-freeze.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-store-global.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll