[PATCH] D83602: [DAGCombiner] Scalarize splats with just one demanded lane

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 10 18:16:36 PDT 2020


tlively created this revision.
tlively added reviewers: aheejin, dschuff, arsenm, spatel.
Herald added subscribers: llvm-commits, ecnelises, hiraditya, jgravelle-google, sbc100, wdng.
Herald added a project: LLVM.

This patch implements a combine to scalarize subtrees of the selection
DAG that produce splat values for which only a single lane is
demanded. The scalarization only happens when the target supports
scalar versions of each operation in the subtree to avoid introducing
any new transitions between vector and scalar registers and to avoid
potentially-expensive expansions of scalarized operations.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83602

Files:
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/test/CodeGen/AArch64/arm64-nvcast.ll
  llvm/test/CodeGen/SystemZ/vec-trunc-to-i1.ll
  llvm/test/CodeGen/WebAssembly/simd-shift-complex-splats.ll
  llvm/test/CodeGen/X86/avx512-calling-conv.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83602.277186.patch
Type: text/x-patch
Size: 16306 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200711/2211e82c/attachment.bin>


More information about the llvm-commits mailing list