aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/Mips
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanak@gmail.com>2011-07-19 23:30:50 +0000
committerAkira Hatanaka <ahatanak@gmail.com>2011-07-19 23:30:50 +0000
commitdb54826f20c6cbcb9b195c4b49c946d6488156dd (patch)
tree22c9baff4f7abcbbf2bcd0c6e28900e19ac57762 /test/CodeGen/Mips
parent70955c2d12bd64dbb2faa626ea8fe18abb621e1c (diff)
downloadexternal_llvm-db54826f20c6cbcb9b195c4b49c946d6488156dd.zip
external_llvm-db54826f20c6cbcb9b195c4b49c946d6488156dd.tar.gz
external_llvm-db54826f20c6cbcb9b195c4b49c946d6488156dd.tar.bz2
Lower memory barriers to sync instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135537 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Mips')
-rw-r--r--test/CodeGen/Mips/atomic.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/atomic.ll b/test/CodeGen/Mips/atomic.ll
index e110602..50bcc09 100644
--- a/test/CodeGen/Mips/atomic.ll
+++ b/test/CodeGen/Mips/atomic.ll
@@ -12,6 +12,7 @@ declare i8 @llvm.atomic.load.nand.i8.p0i8(i8* nocapture, i8) nounwind
declare i8 @llvm.atomic.swap.i8.p0i8(i8* nocapture, i8) nounwind
declare i8 @llvm.atomic.cmp.swap.i8.p0i8(i8* nocapture, i8, i8) nounwind
+declare void @llvm.memory.barrier(i1, i1, i1, i1, i1) nounwind
@x = common global i32 0, align 4
@@ -239,3 +240,21 @@ entry:
; CHECK: sll $[[R17:[0-9]+]], $[[R16]], 24
; CHECK: sra $2, $[[R17]], 24
}
+
+@countsint = common global i32 0, align 4
+
+define i32 @CheckSync(i32 %v) nounwind noinline {
+entry:
+ tail call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
+ %0 = tail call i32 @llvm.atomic.load.add.i32.p0i32(i32* @countsint, i32 %v)
+ tail call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
+ ret i32 %0
+
+; CHECK: CheckSync:
+; CHECK: sync 0
+; CHECK: ll
+; CHECK: sc
+; CHECK: beq
+; CHECK: sync 0
+}
+