[all-commits] [llvm/llvm-project] 3e4ee7: [X86] Fold EXTRACT_SUBVECTOR(ONEUSE(EXTRACT_SUBVEC...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Oct 10 02:25:36 PDT 2024


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
    M llvm/test/CodeGen/X86/kshift.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll

  Log Message:
  -----------
  [X86] Fold EXTRACT_SUBVECTOR(ONEUSE(EXTRACT_SUBVECTOR(V,C1))),C2) - EXTRACT_SUBVECTOR(V,C1+C2) (#111685)

Extract from the original source vector whenever possible.

This removes a number of dependency bottlenecks and helps a number of shuffle combining cases: either by allowing us to avoid a cross-lane variable shuffle on a slow target by keeping the instruction count below the threshold, or on fast targets make it easier to recognise that the subvectors all came form the same source.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list