// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s

int* foo(int** a, int* b, int* c) {
return __sync_val_compare_and_swap (a, b, c);
}
// CHECK: define i32* @foo
// CHECK: cmpxchg 

int foo2(int** a, int* b, int* c) {
return __sync_bool_compare_and_swap (a, b, c);
}
// CHECK: define i32 @foo2
// CHECK: cmpxchg

int* foo3(int** a, int b) {
  return __sync_fetch_and_add (a, b);
}
// CHECK: define i32* @foo3
// CHECK: atomicrmw add


int* foo4(int** a, int b) {
  return __sync_fetch_and_sub (a, b);
}
// CHECK: define i32* @foo4
// CHECK: atomicrmw sub


int* foo5(int** a, int* b) {
  return __sync_lock_test_and_set (a, b);
}
// CHECK: define i32* @foo5
// CHECK: atomicrmw xchg


int* foo6(int** a, int*** b) {
  return __sync_lock_test_and_set (a, b);
}
// CHECK: define i32* @foo6
// CHECK: atomicrmw xchg
