diff options
Diffstat (limited to 'clang/test/CodeGen/atomic_ops.c')
-rw-r--r-- | clang/test/CodeGen/atomic_ops.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/CodeGen/atomic_ops.c b/clang/test/CodeGen/atomic_ops.c new file mode 100644 index 0000000..9a18c9e --- /dev/null +++ b/clang/test/CodeGen/atomic_ops.c @@ -0,0 +1,14 @@ +// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s + +void foo(void) +{ + _Atomic(int) i = 0; + // Check that multiply / divides on atomics produce a cmpxchg loop + i *= 2; // CHECK: cmpxchg + i /= 2; // CHECK: cmpxchg + // These should be emitting atomicrmw instructions, but they aren't yet + i += 2; // CHECK: cmpxchg + i -= 2; // CHECK: cmpxchg + i++; // CHECK: cmpxchg + i--; // CHECK: cmpxchg +} |