[all-commits] [llvm/llvm-project] 5de09e: [DAGCombiner][X86] Don't peek through ANDs on the ...

Craig Topper via All-commits all-commits at lists.llvm.org
Sun Feb 28 13:01:57 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5de09ef02e24d234d9fc0cd1c6dfe18a1bb784b0
      https://github.com/llvm/llvm-project/commit/5de09ef02e24d234d9fc0cd1c6dfe18a1bb784b0
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-02-28 (Sun, 28 Feb 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/shift-double.ll

  Log Message:
  -----------
  [DAGCombiner][X86] Don't peek through ANDs on the shift amount in matchRotateSub when called from MatchFunnelPosNeg.

Peeking through AND is only valid if the input to both shifts is
the same. If the inputs are different, then the original pattern
ORs the two values when the masked shift amount is 0. This is ok
if the values are the same since the OR would be a NOP which is
why its ok for rotate.

Fixes PR49365 and reverts PR34641

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




More information about the All-commits mailing list