[PATCH] D146610: [DAGCombiner][SelectionDAG] Apply CombineStoreAndExtract on constant values

Ting Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 24 00:45:30 PDT 2023


tingwang updated this revision to Diff 507982.
tingwang added a comment.

Updates:
(1) Do not combine when store node generates additional value(s).
(2) Add `getCombineStoreAndExtractIdx()` to directly query the index, and do not need to loop through all elements.
(3) If the constant value to be stored is referenced by node other than current Store and the vector node, do not combine.
(4) Do not combine if the constant value is -1U.
(5) Add check to make sure the to-be-extracted vector type is legal.

Bootstrap is clean with this version.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146610

Files:
  llvm/include/llvm/CodeGen/TargetLowering.h
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  llvm/lib/Target/PowerPC/PPCISelLowering.h
  llvm/test/CodeGen/PowerPC/const-nonsplat-array-init.ll
  llvm/test/CodeGen/PowerPC/const-splat-array-init.ll
  llvm/test/CodeGen/PowerPC/memset-tail.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D146610.507982.patch
Type: text/x-patch
Size: 74671 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230324/bca92e28/attachment-0001.bin>


More information about the llvm-commits mailing list