summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/atomic.c
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-09-21 23:40:48 +0000
committerChris Lattner <sabre@nondot.org>2010-09-21 23:40:48 +0000
commitb2f659b7a0b787a933c5bd6d665ea0299e5b7ad1 (patch)
treec35b270709d4db5dc9067c0d69548154c04612d0 /clang/test/CodeGen/atomic.c
parentc9066d3072637bd638b31fbac168b87142e02874 (diff)
downloadbcm5719-llvm-b2f659b7a0b787a933c5bd6d665ea0299e5b7ad1.tar.gz
bcm5719-llvm-b2f659b7a0b787a933c5bd6d665ea0299e5b7ad1.zip
fix the rest of rdar://8461279 - clang miscompiles address-space qualified atomics
llvm-svn: 114503
Diffstat (limited to 'clang/test/CodeGen/atomic.c')
-rw-r--r--clang/test/CodeGen/atomic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/CodeGen/atomic.c b/clang/test/CodeGen/atomic.c
index 6b80e6dda64..e3bc2185b75 100644
--- a/clang/test/CodeGen/atomic.c
+++ b/clang/test/CodeGen/atomic.c
@@ -130,6 +130,7 @@ void release_return(int *lock) {
}
+// rdar://8461279 - Atomics with address spaces.
// CHECK: @addrspace
void addrspace(int __attribute__((address_space(256))) * P) {
__sync_bool_compare_and_swap(P, 0, 1);
@@ -142,5 +143,12 @@ void addrspace(int __attribute__((address_space(256))) * P) {
// CHECK: call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
// CHECK: call i32 @llvm.atomic.cmp.swap.i32.p256i32(i32 addrspace(256)*{{.*}}, i32 0, i32 1)
// CHECK: call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
+
+
+ __sync_xor_and_fetch(P, 123);
+ // CHECK: call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
+ // CHECK: call i32 @llvm.atomic.load.xor.i32.p256i32(i32 addrspace(256)* {{.*}}, i32 123)
+ // CHECK: call void @llvm.memory.barrier(i1 true, i1 true, i1 true, i1 true, i1 true)
+
}
OpenPOWER on IntegriCloud