blob: 9a18c9e94492ef9df783c5ed0246a9c25021797a [file] [log] [blame]
David Chisnall7a7ee302012-01-16 17:27:18 +00001// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
2
3void foo(void)
4{
5 _Atomic(int) i = 0;
6 // Check that multiply / divides on atomics produce a cmpxchg loop
7 i *= 2; // CHECK: cmpxchg
8 i /= 2; // CHECK: cmpxchg
9 // These should be emitting atomicrmw instructions, but they aren't yet
10 i += 2; // CHECK: cmpxchg
11 i -= 2; // CHECK: cmpxchg
12 i++; // CHECK: cmpxchg
13 i--; // CHECK: cmpxchg
14}