diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
| commit | dbe13110f59f48b4dbb7552b3ac2935acdeece7f (patch) | |
| tree | be1815eb79b42ff482a8562b13c2dcbf0c5dcbee /test/CodeGen/atomic_ops.c | |
| parent | 9da628931ebf2609493570f87824ca22402cc65f (diff) | |
Notes
Diffstat (limited to 'test/CodeGen/atomic_ops.c')
| -rw-r--r-- | test/CodeGen/atomic_ops.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/atomic_ops.c b/test/CodeGen/atomic_ops.c new file mode 100644 index 000000000000..9a18c9e94492 --- /dev/null +++ b/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 +} |
