[all-commits] [llvm/llvm-project] ce3501: [X86][AVX] Add lowerShuffleAsLanePermuteAndSHUFP l...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sat Jan 11 04:48:59 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ce35010d782cb5a69102ad7785eb747f6d747eb4
      https://github.com/llvm/llvm-project/commit/ce35010d782cb5a69102ad7785eb747f6d747eb4
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-01-11 (Sat, 11 Jan 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll

  Log Message:
  -----------
  [X86][AVX] Add lowerShuffleAsLanePermuteAndSHUFP lowering

Add initial support for lowering v4f64 shuffles to SHUFPD(VPERM2F128(V1, V2), VPERM2F128(V1, V2)), eventually this could be used for v8f32 (and maybe v8f64/v16f32) but I'm being conservative for the initial implementation as only v4f64 can always succeed.

This currently is only called from lowerShuffleAsLanePermuteAndShuffle so only gets used for unary shuffles, and we limit this to cases where we use upper elements as otherwise concating 2 xmm shuffles is probably the better case.

Helps with poor shuffles mentioned in D66004.


  Commit: 08275a52d83e623f0347fd9396c18f4d21a15c90
      https://github.com/llvm/llvm-project/commit/08275a52d83e623f0347fd9396c18f4d21a15c90
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-01-11 (Sat, 11 Jan 2020)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll

  Log Message:
  -----------
  Fix copy+paste typo in shuffle test name


Compare: https://github.com/llvm/llvm-project/compare/5d069f4314a0...08275a52d83e


More information about the All-commits mailing list