[all-commits] [llvm/llvm-project] 267de8: [llvm-mca][AArch64] Add AArch64 version of clearsS...

Rin Dobrescu via All-commits all-commits at lists.llvm.org
Wed May 22 07:31:58 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 267de8543c8671baa7e12c4d181e6c4e6e2342cd
      https://github.com/llvm/llvm-project/commit/267de8543c8671baa7e12c4d181e6c4e6e2342cd
  Author: Rin Dobrescu <irina.dobrescu at arm.com>
  Date:   2024-05-22 (Wed, 22 May 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
    A llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-clear-upper-regs.s
    A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-clear-upper-regs.s

  Log Message:
  -----------
  [llvm-mca][AArch64] Add AArch64 version of clearsSuperRegisters. (#92548)

This patch overrides the clearsSuperRegisters method defined in
MCInstrAnalysis to identify register writes that clear the upper portion
of all super-registers on AArch64 architecture.

On AArch64, a write to a general-purpose register of 32-bit data size is
defined to use the lower 32-bits of the register and zero extend the
upper 32-bits.
Similarly, SIMD and FP instructions operating on scalar data only access
the lower bits of the SIMD&FP register. The unused upper bits are
cleared to zero on a write.
This also applies to SIMD vector registers when the element size in bits
multiplied by the number of lanes is lower than 128. The upper 64 bits
of the vector register are cleared to zero on a write.



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