summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/AArch64/atomic-ops-not-barriers.ll
diff options
context:
space:
mode:
authorTim Northover <Tim.Northover@arm.com>2013-04-08 08:40:41 +0000
committerTim Northover <Tim.Northover@arm.com>2013-04-08 08:40:41 +0000
commit211ffd242df8bacf4cbe034f5ca7545ab75b45df (patch)
treef6ebe30b63626353ca1ed55c617a8ace84313d78 /test/CodeGen/AArch64/atomic-ops-not-barriers.ll
parent724a7b145d480018ddae894ffdd848154cd5478f (diff)
downloadexternal_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.ll6
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