[all-commits] [llvm/llvm-project] ffe72f: [X86][SSE] Don't fold shuffle(binop(), binop()) -> ...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Fri Jan 22 03:32:10 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ffe72f987f4866c46c18174cdb750dea88bedba3
      https://github.com/llvm/llvm-project/commit/ffe72f987f4866c46c18174cdb750dea88bedba3
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-01-22 (Fri, 22 Jan 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/haddsub-3.ll

  Log Message:
  -----------
  [X86][SSE] Don't fold shuffle(binop(),binop()) -> binop(shuffle(),shuffle()) if the shuffle are splats

rGbe69e66b1cd8 added the fold, but DAGCombiner.visitVECTOR_SHUFFLE doesn't merge shuffles if the inner shuffle is a splat, so we need to bail.

The non-fast-horiz-ops paths see some minor regressions, we might be able to improve on this after lowering to target shuffles.

Fix PR48823




More information about the All-commits mailing list