[all-commits] [llvm/llvm-project] 415f89: [X86] Remove single-use checks when combining xor ...

Daniel Zabawa via All-commits all-commits at lists.llvm.org
Mon Mar 3 17:35:58 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 415f89905fa04bdee2f0f5a8886706756699d06e
      https://github.com/llvm/llvm-project/commit/415f89905fa04bdee2f0f5a8886706756699d06e
  Author: Daniel Zabawa <daniel.zabawa at intel.com>
  Date:   2025-03-04 (Tue, 04 Mar 2025)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx512fp16-combine-xor-vfmulc.ll

  Log Message:
  -----------
  [X86] Remove single-use checks when combining xor and vfmulc/vcfmulc. (#128910)

The current implementation to combine xor patterns for conjugation with
complex multiplies will not perform the transformation when either the
conjugate xor result or other multiplicand have other uses. This change
eliminates both single-use checks.

The transformation will eliminate the xor dependence and hence should be
profitable even if the conjugate is used elsewhere - and more profitable
if the xor is used in multiple fmulc/fcmulc instructions, eventually
going dead.

The check of the other multiplicand isn't required for correctness and
has no apparent performance implications.



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