rust/tests/assembly/asm/aarch64-outline-atomics.rs

18 lines
462 B
Rust

//@ assembly-output: emit-asm
//@ compile-flags: -O
//@ compile-flags: --target aarch64-unknown-linux-gnu
//@ needs-llvm-components: aarch64
//@ only-aarch64
//@ only-linux
#![crate_type = "rlib"]
use std::sync::atomic::AtomicI32;
use std::sync::atomic::Ordering::*;
pub fn compare_exchange(a: &AtomicI32) {
// On AArch64 LLVM should outline atomic operations.
// CHECK: __aarch64_cas4_relax
let _ = a.compare_exchange(0, 10, Relaxed, Relaxed);
}