[PATCH] D134870: [AMDGPU][GISel] Better support for V2S16 G_EXTRACT/INSERT_VECTOR_ELT

Pierre van Houtryve via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 29 03:41:39 PDT 2022


Pierre-vh created this revision.
Pierre-vh added reviewers: arsenm, foad.
Herald added subscribers: kosarev, kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl.
Herald added a project: All.
Pierre-vh requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.

- Add a pre-legalizer combine to rewrite G_INSERT_VECTOR_ELT and G_EXTRACT_VECTOR_ELT for V2S16 into another form using G_UNMERGE_VALUE and G_BUILD_VECTOR.
  - With D134433 <https://reviews.llvm.org/D134433>, this allows for better matching of mad_mix in D134354 <https://reviews.llvm.org/D134354>
- Add a post-legalizer combine to remove G_TRUNC(G_BITCAST(G_BUILD_VECTOR))
  - Necessary because of the `unmerge_dead_to_trunc` combine that removes the G_UNMERGE_VALUE added by the pre-legalizer combine for G_EXTRACT_VECTOR_ELT when idx == 0.

Depends on D134433 <https://reviews.llvm.org/D134433>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D134870

Files:
  llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
  llvm/lib/Target/AMDGPU/AMDGPUCombine.td
  llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
  llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
  llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.dim.a16.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizer-combiner-trunc-bitcast-buildvector.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-v2s16-extract-vector-elt.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-v2s16-insert-vector-elt.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D134870.463830.patch
Type: text/x-patch
Size: 174720 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220929/0c32cba1/attachment-0001.bin>


More information about the llvm-commits mailing list