diff options
author | Tim Northover <Tim.Northover@arm.com> | 2013-04-08 08:40:41 +0000 |
---|---|---|
committer | Tim Northover <Tim.Northover@arm.com> | 2013-04-08 08:40:41 +0000 |
commit | 211ffd242df8bacf4cbe034f5ca7545ab75b45df (patch) | |
tree | f6ebe30b63626353ca1ed55c617a8ace84313d78 /test/CodeGen/AArch64/atomic-ops-not-barriers.ll | |
parent | 724a7b145d480018ddae894ffdd848154cd5478f (diff) | |
download | external_llvm-211ffd242df8bacf4cbe034f5ca7545ab75b45df.zip external_llvm-211ffd242df8bacf4cbe034f5ca7545ab75b45df.tar.gz external_llvm-211ffd242df8bacf4cbe034f5ca7545ab75b45df.tar.bz2 |
AArch64: remove barriers from AArch64 atomic operations.
I've managed to convince myself that AArch64's acquire/release
instructions are sufficient to guarantee C++11's required semantics,
even in the sequentially-consistent case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179005 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/AArch64/atomic-ops-not-barriers.ll')
-rw-r--r-- | test/CodeGen/AArch64/atomic-ops-not-barriers.ll | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/test/CodeGen/AArch64/atomic-ops-not-barriers.ll b/test/CodeGen/AArch64/atomic-ops-not-barriers.ll index 3c03e47..9888a74 100644 --- a/test/CodeGen/AArch64/atomic-ops-not-barriers.ll +++ b/test/CodeGen/AArch64/atomic-ops-not-barriers.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple=aarch64-none-linux-gnu < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs < %s | FileCheck %s define i32 @foo(i32* %var, i1 %cond) { ; CHECK: foo: @@ -9,7 +9,9 @@ simple_ver: store i32 %newval, i32* %var br label %somewhere atomic_ver: - %val = atomicrmw add i32* %var, i32 -1 seq_cst + fence seq_cst + %val = atomicrmw add i32* %var, i32 -1 monotonic + fence seq_cst br label %somewhere ; CHECK: dmb ; CHECK: ldxr |