[all-commits] [llvm/llvm-project] cf401f: [RISCV] Use Zacas for AtomicRMWInst::Nand i32 and ...
Craig Topper via All-commits
all-commits at lists.llvm.org
Wed Jan 31 15:37:53 PST 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: cf401f72e1b5aa6be0719ab45c95c10ea06bec9a
https://github.com/llvm/llvm-project/commit/cf401f72e1b5aa6be0719ab45c95c10ea06bec9a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-01-31 (Wed, 31 Jan 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/atomic-rmw.ll
M llvm/test/CodeGen/RISCV/atomic-signext.ll
Log Message:
-----------
[RISCV] Use Zacas for AtomicRMWInst::Nand i32 and XLen. (#80119)
We don't have an AMO instruction for Nand, so with the A extension we
use an LR/SC loop. If we have Zacas we can use a CAS loop instead.
According to the Zacas spec, a CAS loop scales to highly parallel
systems better than LR/SC.
More information about the All-commits
mailing list