[all-commits] [llvm/llvm-project] 46d4c3: [X86] combineX86ShuffleChain - always prefer VPERM...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Apr 8 09:30:57 PDT 2025


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/matrix-multiply.ll

  Log Message:
  -----------
  [X86] combineX86ShuffleChain - always prefer VPERMQ/PD for unary subvector shuffles on AVX2+ targets (#134849)

When combining 2 x 128-bit subvectors, don't assume that if the node is
already a X86ISD::VPERM2X128 node then there's nothing to do.

Fix issue where if we'd somehow combined to X86ISD::VPERM2X128
(typically if the 2 operands had then simplified to a common operand),
we can't canonicalise back to X86ISD::VPERMI on AVX2+ targets.

This matches the v4f64/v4i64 shuffle lowering preference for VPERMQ/PD
over VPERM2F128/I128.



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