[all-commits] [llvm/llvm-project] be69e6: [X86][SSE] Attempt to fold shuffle(binop(), binop()...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Fri Jan 15 08:38:42 PST 2021


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

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

  Log Message:
  -----------
  [X86][SSE] Attempt to fold shuffle(binop(),binop()) -> binop(shuffle(),shuffle())

If this will help us fold shuffles together, then push the shuffle through the merged binops.

Ideally this would be performed in DAGCombiner::visitVECTOR_SHUFFLE but getting an efficient+legal merged shuffle can be tricky - on SSE we can be confident that for 32/64-bit elements vectors shuffles should easily fold.




More information about the All-commits mailing list