[all-commits] [llvm/llvm-project] c5afcf: [X86] combineINSERT_SUBVECTOR - fold insert_subvec...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Apr 1 00:39:51 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c5afcfe0bb44067b2cd050ed9cff311eada9cc37
      https://github.com/llvm/llvm-project/commit/c5afcfe0bb44067b2cd050ed9cff311eada9cc37
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-04-01 (Tue, 01 Apr 2025)

  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/any_extend_vector_inreg_of_broadcast_from_memory.ll
    M llvm/test/CodeGen/X86/insert-subvector-broadcast.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-5.ll

  Log Message:
  -----------
  [X86] combineINSERT_SUBVECTOR - fold insert_subvector(base,extract_subvector(broadcast)) -> blend shuffle(base,broadcast) (REAPPLIED) (#133724)

If the broadcast is already the full vector width, try to prefer a blend/vshuff64x2 over a vector insertion which is usually lower latency (and sometimes a lower uop count), and reduces changes in vector sizes that can interfere with further combines.

Updated version of #133083 - which lead to infinite loops due to shuffle lowering recreating the INSERT_SUBVECTOR pattern, this variant creates the BLENDI/SHUF128 nodes directly.



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