[all-commits] [llvm/llvm-project] fa9c12: [X86] Attempt to combine binary shuffles where bot...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Oct 13 06:34:52 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fa9c12ed964b8201e142d78e430ad4c76bd7af62
      https://github.com/llvm/llvm-project/commit/fa9c12ed964b8201e142d78e430ad4c76bd7af62
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2022-10-13 (Thu, 13 Oct 2022)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining.ll

  Log Message:
  -----------
  [X86] Attempt to combine binary shuffles where both operands come from the same larger vector

Allows us to use combineX86ShuffleChainWithExtract to combine targetshuffle(low_subvector(x),high_subvector(x)) -> low_subvector(targetshuffle(x)) style patterns

This is currently very limited (it must have a v2i64/v2f64 result), but while triaging I noticed we might be able to extend this to allow more types for targets with suitable variable cross lane shuffle support.

Fixes #58339




More information about the All-commits mailing list