[all-commits] [llvm/llvm-project] 3079e5: [X86][SSE] Generalize shuffle(HORIZOP, HORIZOP) -> ...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sun Apr 5 04:10:16 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3079e518589ca9a1b1b2eb20bd8abb80c32ba5ec
      https://github.com/llvm/llvm-project/commit/3079e518589ca9a1b1b2eb20bd8abb80c32ba5ec
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-04-05 (Sun, 05 Apr 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/vector-trunc.ll

  Log Message:
  -----------
  [X86][SSE] Generalize shuffle(HORIZOP,HORIZOP) -> HORIZOP combine

Our existing combine allows to merge the shuffle of 2 similar 64-bit wide 'horizontal ops' (HADD/PACK/etc.) if the shuffle was a UNPCK/MOVSD.

This patch generalizes this to decode any target shuffle mask that can be widened to a 128-bit repeating v2*64 mask, which helps us catch PBLENDW/PBLENDD cases.




More information about the All-commits mailing list