[all-commits] [llvm/llvm-project] 1e4d88: [InstCombine] matchFunnelShift - add support for n...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Wed Oct 14 02:44:06 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 1e4d882f9afe3fa5d0085f056b56eec21eb2c087
      https://github.com/llvm/llvm-project/commit/1e4d882f9afe3fa5d0085f056b56eec21eb2c087
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-10-14 (Wed, 14 Oct 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/funnel.ll
    M llvm/test/Transforms/InstCombine/rotate.ll

  Log Message:
  -----------
  [InstCombine] matchFunnelShift - add support for non-uniform vectors containing undefs.

Replace m_SpecificInt with m_APIntAllowUndef to matching splats containing undefs, then use ConstantExpr::mergeUndefsWith to merge the undefs together in the result.

The undef funnel shift amounts are getting replaced with zero later on - I'll address this in a later patch, otherwise we lose potential shift by splat value patterns.




More information about the All-commits mailing list