[all-commits] [llvm/llvm-project] 6c8470: [AArch64] Materialize constants via fneg. (#80641)

David Green via All-commits all-commits at lists.llvm.org
Wed Feb 14 05:56:03 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6c84709eff20460a75fb58d2face54432c133967
      https://github.com/llvm/llvm-project/commit/6c84709eff20460a75fb58d2face54432c133967
  Author: David Green <david.green at arm.com>
  Date:   2024-02-14 (Wed, 14 Feb 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/arm64-build-vector.ll
    M llvm/test/CodeGen/AArch64/fabs-combine.ll
    M llvm/test/CodeGen/AArch64/fcvt_combine.ll
    M llvm/test/CodeGen/AArch64/neon-mov.ll
    M llvm/test/CodeGen/AArch64/srem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-vec-nonzero.ll
    M llvm/test/CodeGen/AArch64/urem-vector-lkk.ll

  Log Message:
  -----------
  [AArch64] Materialize constants via fneg. (#80641)

This is something that is already done as a special case for copysign,
this patch extends it to be more generally applied. If we are trying to
matrialize a negative constant (notably -0.0, 0x80000000), then there
may be no movi encoding that creates the immediate, but a fneg(movi)
might.

Some of the existing patterns for RADDHN needed to be adjusted to keep
them in line with the new immediates.




More information about the All-commits mailing list