summaryrefslogtreecommitdiff
path: root/test/CodeGen/linux-arm-atomic.c
blob: c7ce1d228bb5d3bd18c677831829859005b4e4df (plain)
1
2
3
4
5
6
7
8
9
10
11
// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s
// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s
// RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s

typedef int _Atomic_word;
_Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) {
  return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL);
}

// CHECK: define {{.*}} @exchange_and_add
// CHECK: atomicrmw {{.*}} add