[all-commits] [llvm/llvm-project] ea6111: [AArch64][SVE2] Allow commuting two-input NBSL/BSL...

Ricardo Jesus via All-commits all-commits at lists.llvm.org
Fri Mar 13 07:17:56 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ea61110c97ad5d59d263f3d83f81f726b4cf3650
      https://github.com/llvm/llvm-project/commit/ea61110c97ad5d59d263f3d83f81f726b4cf3650
  Author: Ricardo Jesus <rjj at nvidia.com>
  Date:   2026-03-13 (Fri, 13 Mar 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
    M llvm/lib/Target/AArch64/AArch64SchedOlympus.td
    A llvm/test/CodeGen/AArch64/sve2-bitsel-pseudos-expansion.mir
    M llvm/test/CodeGen/AArch64/sve2-bsl.ll

  Log Message:
  -----------
  [AArch64][SVE2] Allow commuting two-input NBSL/BSL2N idioms. (#184847)

Specifically, EON, NAND and NOR are commutable operations that lack
dedicated SVE2 instructions, but we support them via NBSL/BSL2N.

However, as NBSL/BSL2N have tied operands, sometimes we generate a COPY
even if one of the operands could be clobbered.

This patch defines custom expansion for these operations to allow using
their commuted forms or, if still necessary, using MOVPRFX for the COPY.

Should help with
https://github.com/llvm/llvm-project/pull/176194#discussion_r2889564685.



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