1// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
2
3void foo(int x)
4{
5  _Atomic(int) i = 0;
6  _Atomic(short) j = 0;
7  // Check that multiply / divides on atomics produce a cmpxchg loop
8  i *= 2;
9  // CHECK: mul nsw i32
10  // CHECK: cmpxchg i32*
11  i /= 2;
12  // CHECK: sdiv i32
13  // CHECK: cmpxchg i32*
14  j /= x;
15  // CHECK: sdiv i32
16  // CHECK: cmpxchg i16*
17
18}
19