[all-commits] [llvm/llvm-project] d5c434: [X86][SSE] combineX86ShufflesRecursively - add bas...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sun Dec 13 09:23:50 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d5c434d7dda25909cd7886e419baf3db3578953e
      https://github.com/llvm/llvm-project/commit/d5c434d7dda25909cd7886e419baf3db3578953e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-12-13 (Sun, 13 Dec 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/min-legal-vector-width.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-v1.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll

  Log Message:
  -----------
  [X86][SSE] combineX86ShufflesRecursively - add basic handling for combining shuffles of different widths (PR45974)

If a faux shuffle uses smaller shuffle inputs, try to recursively combine with those inputs directly instead of widening them immediately. Then widen all smaller inputs at the bottom of the recursion.

This will still mean we're generating nodes on the fly (PR45974) even if we don't combine to a new shuffle but it does help AVX2+ targets combine across xmm/ymm/zmm types, mainly as variable shuffles.




More information about the All-commits mailing list