[all-commits] [llvm/llvm-project] eb0e19: [TargetLowering] SimplifyDemandedBits - call Simpl...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sat Jan 4 05:16:13 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: eb0e1978df7b9e7df3e645bb48fbf655f8aab69a
      https://github.com/llvm/llvm-project/commit/eb0e1978df7b9e7df3e645bb48fbf655f8aab69a
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-01-04 (Sat, 04 Jan 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/vecreduce-and-legalization.ll
    M llvm/test/CodeGen/ARM/dagcombine-anyexttozeroext.ll
    M llvm/test/CodeGen/Thumb2/lsll0.ll
    M llvm/test/CodeGen/Thumb2/mve-vld3.ll
    M llvm/test/CodeGen/Thumb2/mve-vld4.ll
    M llvm/test/CodeGen/WebAssembly/simd-arith.ll
    M llvm/test/CodeGen/WebAssembly/simd-extended-extract.ll
    M llvm/test/CodeGen/X86/promote-vec3.ll
    M llvm/test/CodeGen/X86/vec_smulo.ll
    M llvm/test/CodeGen/X86/vec_umulo.ll
    M llvm/test/CodeGen/X86/xor.ll

  Log Message:
  -----------
  [TargetLowering] SimplifyDemandedBits - call SimplifyMultipleUseDemandedBits for ISD::EXTRACT_VECTOR_ELT (REAPPLIED)

This patch attempts to peek through vectors based on the demanded bits/elt of a particular ISD::EXTRACT_VECTOR_ELT node, allowing us to avoid dependencies on ops that have no impact on the extract.

In particular this helps remove some unnecessary scalar->vector->scalar patterns.

The wasm shift patterns are annoying - @tlively has indicated that the wasm vector shift codegen are to be refactored in the near-term and isn't considered a major issue.

Reapplied after reversion at rL368660 due to PR42982 which was fixed at rGca7fdd41bda0.

Differential Revision: https://reviews.llvm.org/D65887




More information about the All-commits mailing list