[all-commits] [llvm/llvm-project] 249207: [X86][SSE] lowerShuffleAsBitRotate - lower to vXi8...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Fri Feb 14 03:55:31 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2492075add88af24bfc0c9af8a9af61b880c0ebb
      https://github.com/llvm/llvm-project/commit/2492075add88af24bfc0c9af8a9af61b880c0ebb
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-02-14 (Fri, 14 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/bswap-vector.ll
    M llvm/test/CodeGen/X86/vector-bitreverse.ll
    M llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll

  Log Message:
  -----------
  [X86][SSE] lowerShuffleAsBitRotate - lower to vXi8 shuffles to ROTL on pre-SSSE3 targets

Without PSHUFB we are better using ROTL (expanding to OR(SHL,SRL)) than using the generic v16i8 shuffle lowering - but if we can widen to v8i16 or more then the existing shuffles are still the better option.

REAPPLIED: Original commit rG11c16e71598d was reverted at rGde1d90299b16 as it wasn't accounting for later lowering. This version emits ROTLI or the OR(VSHLI/VSRLI) directly to avoid the issue.




More information about the All-commits mailing list