Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGen/2008-03-05-syncPtr.c
Context not available. | |||||
int* foo(int** a, int* b, int* c) { | int* foo(int** a, int* b, int* c) { | ||||
return __sync_val_compare_and_swap (a, b, c); | return __sync_val_compare_and_swap (a, b, c); | ||||
} | } | ||||
// CHECK-LABEL: define i32* @foo | // CHECK-LABEL: define noundef i32* @foo | ||||
// CHECK: cmpxchg | // CHECK: cmpxchg | ||||
int foo2(int** a, int* b, int* c) { | int foo2(int** a, int* b, int* c) { | ||||
return __sync_bool_compare_and_swap (a, b, c); | return __sync_bool_compare_and_swap (a, b, c); | ||||
} | } | ||||
// CHECK-LABEL: define i32 @foo2 | // CHECK-LABEL: define noundef i32 @foo2 | ||||
// CHECK: cmpxchg | // CHECK: cmpxchg | ||||
int* foo3(int** a, int b) { | int* foo3(int** a, int b) { | ||||
return __sync_fetch_and_add (a, b); | return __sync_fetch_and_add (a, b); | ||||
} | } | ||||
// CHECK-LABEL: define i32* @foo3 | // CHECK-LABEL: define noundef i32* @foo3 | ||||
// CHECK: atomicrmw add | // CHECK: atomicrmw add | ||||
int* foo4(int** a, int b) { | int* foo4(int** a, int b) { | ||||
return __sync_fetch_and_sub (a, b); | return __sync_fetch_and_sub (a, b); | ||||
} | } | ||||
// CHECK-LABEL: define i32* @foo4 | // CHECK-LABEL: define noundef i32* @foo4 | ||||
// CHECK: atomicrmw sub | // CHECK: atomicrmw sub | ||||
int* foo5(int** a, int* b) { | int* foo5(int** a, int* b) { | ||||
return __sync_lock_test_and_set (a, b); | return __sync_lock_test_and_set (a, b); | ||||
} | } | ||||
// CHECK-LABEL: define i32* @foo5 | // CHECK-LABEL: define noundef i32* @foo5 | ||||
// CHECK: atomicrmw xchg | // CHECK: atomicrmw xchg | ||||
int* foo6(int** a, int*** b) { | int* foo6(int** a, int*** b) { | ||||
return __sync_lock_test_and_set (a, b); | return __sync_lock_test_and_set (a, b); | ||||
} | } | ||||
// CHECK-LABEL: define i32* @foo6 | // CHECK-LABEL: define noundef i32* @foo6 | ||||
// CHECK: atomicrmw xchg | // CHECK: atomicrmw xchg | ||||
Context not available. |