[all-commits] [llvm/llvm-project] ac4609: [X86] LowerRotate - use X86::isConstantSplat to de...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Mon Mar 16 05:57:03 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ac4609cb1d0c1104c20a3a7483750e137c3feac4
      https://github.com/llvm/llvm-project/commit/ac4609cb1d0c1104c20a3a7483750e137c3feac4
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] LowerRotate - use X86::isConstantSplat to detect constant splat rotation amounts.

Avoid code duplication and matches what we do for the similar LowerFunnelShift and LowerScalarImmediateShift methods.


  Commit: e43a0857818740184915043cbe2ceb2d3849fcae
      https://github.com/llvm/llvm-project/commit/e43a0857818740184915043cbe2ceb2d3849fcae
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h

  Log Message:
  -----------
  [X86] X86::isConstantSplat - enable partial undef bit handling by default.

We currently only ever use this for lowering constant uniform values (shift/rotate by immediate) so we can safely enable it by default (it treats the undef bits as zero when extracting constants).

This is necessary for an upcoming patch that will use SimplifyDemandedBits more aggressively on funnel shift amounts and causes regressions in vXi64 constant without it.


Compare: https://github.com/llvm/llvm-project/compare/67d25914b2a4...e43a08578187


More information about the All-commits mailing list