Index: src/prelude/sync-builtins.cf
===================================================================
--- src/prelude/sync-builtins.cf	(revision 13073be42dba9d23e1eb3322d700f265381ae024)
+++ src/prelude/sync-builtins.cf	(revision 13073be42dba9d23e1eb3322d700f265381ae024)
@@ -0,0 +1,399 @@
+char __sync_fetch_and_add(volatile char *, char,...);
+char __sync_fetch_and_add_1(volatile char *, char,...);
+short __sync_fetch_and_add(volatile short *, short,...);
+short __sync_fetch_and_add_2(volatile short *, short,...);
+int __sync_fetch_and_add(volatile int *, int,...);
+int __sync_fetch_and_add_4(volatile int *, int,...);
+long long int __sync_fetch_and_add(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_add_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_add(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_add_16(volatile __int128 *, __int128,...);
+
+char __sync_fetch_and_sub(volatile char *, char,...);
+char __sync_fetch_and_sub_1(volatile char *, char,...);
+short __sync_fetch_and_sub(volatile short *, short,...);
+short __sync_fetch_and_sub_2(volatile short *, short,...);
+int __sync_fetch_and_sub(volatile int *, int,...);
+int __sync_fetch_and_sub_4(volatile int *, int,...);
+long long int __sync_fetch_and_sub(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_sub_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_sub(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_sub_16(volatile __int128 *, __int128,...);
+
+char __sync_fetch_and_or(volatile char *, char,...);
+char __sync_fetch_and_or_1(volatile char *, char,...);
+short __sync_fetch_and_or(volatile short *, short,...);
+short __sync_fetch_and_or_2(volatile short *, short,...);
+int __sync_fetch_and_or(volatile int *, int,...);
+int __sync_fetch_and_or_4(volatile int *, int,...);
+long long int __sync_fetch_and_or(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_or_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_or(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_or_16(volatile __int128 *, __int128,...);
+
+char __sync_fetch_and_and(volatile char *, char,...);
+char __sync_fetch_and_and_1(volatile char *, char,...);
+short __sync_fetch_and_and(volatile short *, short,...);
+short __sync_fetch_and_and_2(volatile short *, short,...);
+int __sync_fetch_and_and(volatile int *, int,...);
+int __sync_fetch_and_and_4(volatile int *, int,...);
+long long int __sync_fetch_and_and(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_and_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_and(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_and_16(volatile __int128 *, __int128,...);
+
+char __sync_fetch_and_xor(volatile char *, char,...);
+char __sync_fetch_and_xor_1(volatile char *, char,...);
+short __sync_fetch_and_xor(volatile short *, short,...);
+short __sync_fetch_and_xor_2(volatile short *, short,...);
+int __sync_fetch_and_xor(volatile int *, int,...);
+int __sync_fetch_and_xor_4(volatile int *, int,...);
+long long int __sync_fetch_and_xor(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_xor_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_xor(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_xor_16(volatile __int128 *, __int128,...);
+
+char __sync_fetch_and_nand(volatile char *, char,...);
+char __sync_fetch_and_nand_1(volatile char *, char,...);
+short __sync_fetch_and_nand(volatile short *, short,...);
+short __sync_fetch_and_nand_2(volatile short *, short,...);
+int __sync_fetch_and_nand(volatile int *, int,...);
+int __sync_fetch_and_nand_4(volatile int *, int,...);
+long long int __sync_fetch_and_nand(volatile long long int *, long long int,...);
+long long int __sync_fetch_and_nand_8(volatile long long int *, long long int,...);
+__int128 __sync_fetch_and_nand(volatile __int128 *, __int128,...);
+__int128 __sync_fetch_and_nand_16(volatile __int128 *, __int128,...);
+
+char __sync_add_and_fetch(volatile char *, char,...);
+char __sync_add_and_fetch_1(volatile char *, char,...);
+short __sync_add_and_fetch(volatile short *, short,...);
+short __sync_add_and_fetch_2(volatile short *, short,...);
+int __sync_add_and_fetch(volatile int *, int,...);
+int __sync_add_and_fetch_4(volatile int *, int,...);
+long long int __sync_add_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_add_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_add_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_add_and_fetch_16(volatile __int128 *, __int128,...);
+
+char __sync_sub_and_fetch(volatile char *, char,...);
+char __sync_sub_and_fetch_1(volatile char *, char,...);
+short __sync_sub_and_fetch(volatile short *, short,...);
+short __sync_sub_and_fetch_2(volatile short *, short,...);
+int __sync_sub_and_fetch(volatile int *, int,...);
+int __sync_sub_and_fetch_4(volatile int *, int,...);
+long long int __sync_sub_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_sub_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_sub_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_sub_and_fetch_16(volatile __int128 *, __int128,...);
+
+char __sync_or_and_fetch(volatile char *, char,...);
+char __sync_or_and_fetch_1(volatile char *, char,...);
+short __sync_or_and_fetch(volatile short *, short,...);
+short __sync_or_and_fetch_2(volatile short *, short,...);
+int __sync_or_and_fetch(volatile int *, int,...);
+int __sync_or_and_fetch_4(volatile int *, int,...);
+long long int __sync_or_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_or_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_or_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_or_and_fetch_16(volatile __int128 *, __int128,...);
+
+char __sync_and_and_fetch(volatile char *, char,...);
+char __sync_and_and_fetch_1(volatile char *, char,...);
+short __sync_and_and_fetch(volatile short *, short,...);
+short __sync_and_and_fetch_2(volatile short *, short,...);
+int __sync_and_and_fetch(volatile int *, int,...);
+int __sync_and_and_fetch_4(volatile int *, int,...);
+long long int __sync_and_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_and_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_and_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_and_and_fetch_16(volatile __int128 *, __int128,...);
+
+char __sync_xor_and_fetch(volatile char *, char,...);
+char __sync_xor_and_fetch_1(volatile char *, char,...);
+short __sync_xor_and_fetch(volatile short *, short,...);
+short __sync_xor_and_fetch_2(volatile short *, short,...);
+int __sync_xor_and_fetch(volatile int *, int,...);
+int __sync_xor_and_fetch_4(volatile int *, int,...);
+long long int __sync_xor_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_xor_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_xor_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_xor_and_fetch_16(volatile __int128 *, __int128,...);
+
+char __sync_nand_and_fetch(volatile char *, char,...);
+char __sync_nand_and_fetch_1(volatile char *, char,...);
+short __sync_nand_and_fetch(volatile short *, short,...);
+short __sync_nand_and_fetch_2(volatile short *, short,...);
+int __sync_nand_and_fetch(volatile int *, int,...);
+int __sync_nand_and_fetch_4(volatile int *, int,...);
+long long int __sync_nand_and_fetch(volatile long long int *, long long int,...);
+long long int __sync_nand_and_fetch_8(volatile long long int *, long long int,...);
+__int128 __sync_nand_and_fetch(volatile __int128 *, __int128,...);
+__int128 __sync_nand_and_fetch_16(volatile __int128 *, __int128,...);
+
+_Bool __sync_bool_compare_and_swap(volatile char *, char, char,...);
+_Bool __sync_bool_compare_and_swap_1(volatile char *, char, char,...);
+_Bool __sync_bool_compare_and_swap(volatile short *, short, short,...);
+_Bool __sync_bool_compare_and_swap_2(volatile short *, short, short,...);
+_Bool __sync_bool_compare_and_swap(volatile int *, int, int,...);
+_Bool __sync_bool_compare_and_swap_4(volatile int *, int, int,...);
+_Bool __sync_bool_compare_and_swap(volatile long long int *, long long int, long long int,...);
+_Bool __sync_bool_compare_and_swap_8(volatile long long int *, long long int, long long int,...);
+_Bool __sync_bool_compare_and_swap(volatile __int128 *, __int128, __int128,...);
+_Bool __sync_bool_compare_and_swap_16(volatile __int128 *, __int128, __int128,...);
+
+char __sync_val_compare_and_swap(volatile char *, char, char,...);
+char __sync_val_compare_and_swap_1(volatile char *, char, char,...);
+short __sync_val_compare_and_swap(volatile short *, short, short,...);
+short __sync_val_compare_and_swap_2(volatile short *, short, short,...);
+int __sync_val_compare_and_swap(volatile int *, int, int,...);
+int __sync_val_compare_and_swap_4(volatile int *, int, int,...);
+long long int __sync_val_compare_and_swap(volatile long long int *, long long int, long long int,...);
+long long int __sync_val_compare_and_swap_8(volatile long long int *, long long int, long long int,...);
+__int128 __sync_val_compare_and_swap(volatile __int128 *, __int128, __int128,...);
+__int128 __sync_val_compare_and_swap_16(volatile __int128 *, __int128, __int128,...);
+
+char __sync_lock_test_and_set(volatile char *, char,...);
+char __sync_lock_test_and_set_1(volatile char *, char,...);
+short __sync_lock_test_and_set(volatile short *, short,...);
+short __sync_lock_test_and_set_2(volatile short *, short,...);
+int __sync_lock_test_and_set(volatile int *, int,...);
+int __sync_lock_test_and_set_4(volatile int *, int,...);
+long long int __sync_lock_test_and_set(volatile long long int *, long long int,...);
+long long int __sync_lock_test_and_set_8(volatile long long int *, long long int,...);
+__int128 __sync_lock_test_and_set(volatile __int128 *, __int128,...);
+__int128 __sync_lock_test_and_set_16(volatile __int128 *, __int128,...);
+
+void __sync_lock_release(volatile char *,...);
+void __sync_lock_release_1(volatile char *,...);
+void __sync_lock_release(volatile short *,...);
+void __sync_lock_release_2(volatile short *,...);
+void __sync_lock_release(volatile int *,...);
+void __sync_lock_release_4(volatile int *,...);
+void __sync_lock_release(volatile long long int *,...);
+void __sync_lock_release_8(volatile long long int *,...);
+void __sync_lock_release(volatile __int128 *,...);
+void __sync_lock_release_16(volatile __int128 *,...);
+
+void __sync_synchronize();
+
+
+
+
+_Bool __atomic_test_and_set(volatile _Bool *, int);
+_Bool __atomic_test_and_set(volatile char *, int);
+_Bool __atomic_test_and_set(volatile short *, int);
+_Bool __atomic_test_and_set(volatile int *, int);
+_Bool __atomic_test_and_set(volatile long long int *, int);
+_Bool __atomic_test_and_set(volatile __int128 *, int);
+void __atomic_clear(volatile _Bool *, int);
+void __atomic_clear(volatile char *, int);
+void __atomic_clear(volatile short *, int);
+void __atomic_clear(volatile int *, int);
+void __atomic_clear(volatile long long int *, int);
+void __atomic_clear(volatile __int128 *, int);
+
+char __atomic_exchange_n(volatile char *, volatile char *, int);
+char __atomic_exchange_1(volatile char *, char, int);
+void __atomic_exchange(volatile char *, volatile char *, volatile char *, int);
+short __atomic_exchange_n(volatile short *, volatile short *, int);
+short __atomic_exchange_2(volatile short *, short, int);
+void __atomic_exchange(volatile short *, volatile short *, volatile short *, int);
+int __atomic_exchange_n(volatile int *, volatile int *, int);
+int __atomic_exchange_4(volatile int *, int, int);
+void __atomic_exchange(volatile int *, volatile int *, volatile int *, int);
+long long int __atomic_exchange_n(volatile long long int *, volatile long long int *, int);
+long long int __atomic_exchange_8(volatile long long int *, long long int, int);
+void __atomic_exchange(volatile long long int *, volatile long long int *, volatile long long int *, int);
+__int128 __atomic_exchange_n(volatile __int128 *, volatile __int128 *, int);
+__int128 __atomic_exchange_16(volatile __int128 *, __int128, int);
+void __atomic_exchange(volatile __int128 *, volatile __int128 *, volatile __int128 *, int);
+
+char __atomic_load_n(const volatile char *, int);
+char __atomic_load_1(const volatile char *, int);
+void __atomic_load(const volatile char *, volatile char *, int);
+short __atomic_load_n(const volatile short *, int);
+short __atomic_load_2(const volatile short *, int);
+void __atomic_load(const volatile short *, volatile short *, int);
+int __atomic_load_n(const volatile int *, int);
+int __atomic_load_4(const volatile int *, int);
+void __atomic_load(const volatile int *, volatile int *, int);
+long long int __atomic_load_n(const volatile long long int *, int);
+long long int __atomic_load_8(const volatile long long int *, int);
+void __atomic_load(const volatile long long int *, volatile long long int *, int);
+__int128 __atomic_load_n(const volatile __int128 *, int);
+__int128 __atomic_load_16(const volatile __int128 *, int);
+void __atomic_load(const volatile __int128 *, volatile __int128 *, int);
+
+_Bool __atomic_compare_exchange_n(volatile char *, char *, char, _Bool, int, int);
+_Bool __atomic_compare_exchange_1(volatile char *, char *, char, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile char *, char *, char *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile short *, short *, short, _Bool, int, int);
+_Bool __atomic_compare_exchange_2(volatile short *, short *, short, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile short *, short *, short *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile int *, int *, int, _Bool, int, int);
+_Bool __atomic_compare_exchange_4(volatile int *, int *, int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile int *, int *, int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile long long int *, long long int *, long long int, _Bool, int, int);
+_Bool __atomic_compare_exchange_8(volatile long long int *, long long int *, long long int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile long long int *, long long int *, long long int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n (volatile __int128 *, __int128 *, __int128, _Bool, int, int);
+_Bool __atomic_compare_exchange_16(volatile __int128 *, __int128 *, __int128, _Bool, int, int);
+_Bool __atomic_compare_exchange   (volatile __int128 *, __int128 *, __int128 *, _Bool, int, int);
+
+void __atomic_store_n(volatile _Bool *, _Bool, int);
+void __atomic_store_1(volatile _Bool *, _Bool, int);
+void __atomic_store(volatile _Bool *, _Bool *, int);
+void __atomic_store_n(volatile char *, char, int);
+void __atomic_store_1(volatile char *, char, int);
+void __atomic_store(volatile char *, char *, int);
+void __atomic_store_n(volatile short *, short, int);
+void __atomic_store_2(volatile short *, short, int);
+void __atomic_store(volatile short *, short *, int);
+void __atomic_store_n(volatile int *, int, int);
+void __atomic_store_4(volatile int *, int, int);
+void __atomic_store(volatile int *, int *, int);
+void __atomic_store_n(volatile long long int *, long long int, int);
+void __atomic_store_8(volatile long long int *, long long int, int);
+void __atomic_store(volatile long long int *, long long int *, int);
+void __atomic_store_n(volatile __int128 *, __int128, int);
+void __atomic_store_16(volatile __int128 *, __int128, int);
+void __atomic_store(volatile __int128 *, __int128 *, int);
+
+char __atomic_add_fetch  (volatile char *, char, int);
+char __atomic_add_fetch_1(volatile char *, char, int);
+short __atomic_add_fetch  (volatile short *, short, int);
+short __atomic_add_fetch_2(volatile short *, short, int);
+int __atomic_add_fetch  (volatile int *, int, int);
+int __atomic_add_fetch_4(volatile int *, int, int);
+long long int __atomic_add_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_add_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_add_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_add_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_sub_fetch  (volatile char *, char, int);
+char __atomic_sub_fetch_1(volatile char *, char, int);
+short __atomic_sub_fetch  (volatile short *, short, int);
+short __atomic_sub_fetch_2(volatile short *, short, int);
+int __atomic_sub_fetch  (volatile int *, int, int);
+int __atomic_sub_fetch_4(volatile int *, int, int);
+long long int __atomic_sub_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_sub_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_sub_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_sub_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_and_fetch  (volatile char *, char, int);
+char __atomic_and_fetch_1(volatile char *, char, int);
+short __atomic_and_fetch  (volatile short *, short, int);
+short __atomic_and_fetch_2(volatile short *, short, int);
+int __atomic_and_fetch  (volatile int *, int, int);
+int __atomic_and_fetch_4(volatile int *, int, int);
+long long int __atomic_and_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_and_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_and_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_and_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_nand_fetch  (volatile char *, char, int);
+char __atomic_nand_fetch_1(volatile char *, char, int);
+short __atomic_nand_fetch  (volatile short *, short, int);
+short __atomic_nand_fetch_2(volatile short *, short, int);
+int __atomic_nand_fetch  (volatile int *, int, int);
+int __atomic_nand_fetch_4(volatile int *, int, int);
+long long int __atomic_nand_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_nand_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_nand_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_nand_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_xor_fetch  (volatile char *, char, int);
+char __atomic_xor_fetch_1(volatile char *, char, int);
+short __atomic_xor_fetch  (volatile short *, short, int);
+short __atomic_xor_fetch_2(volatile short *, short, int);
+int __atomic_xor_fetch  (volatile int *, int, int);
+int __atomic_xor_fetch_4(volatile int *, int, int);
+long long int __atomic_xor_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_xor_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_xor_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_xor_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_or_fetch  (volatile char *, char, int);
+char __atomic_or_fetch_1(volatile char *, char, int);
+short __atomic_or_fetch  (volatile short *, short, int);
+short __atomic_or_fetch_2(volatile short *, short, int);
+int __atomic_or_fetch  (volatile int *, int, int);
+int __atomic_or_fetch_4(volatile int *, int, int);
+long long int __atomic_or_fetch  (volatile long long int *, long long int, int);
+long long int __atomic_or_fetch_8(volatile long long int *, long long int, int);
+__int128 __atomic_or_fetch   (volatile __int128 *, __int128, int);
+__int128 __atomic_or_fetch_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_add  (volatile char *, char, int);
+char __atomic_fetch_add_1(volatile char *, char, int);
+short __atomic_fetch_add  (volatile short *, short, int);
+short __atomic_fetch_add_2(volatile short *, short, int);
+int __atomic_fetch_add  (volatile int *, int, int);
+int __atomic_fetch_add_4(volatile int *, int, int);
+long long int __atomic_fetch_add  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_add_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_add   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_add_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_sub  (volatile char *, char, int);
+char __atomic_fetch_sub_1(volatile char *, char, int);
+short __atomic_fetch_sub  (volatile short *, short, int);
+short __atomic_fetch_sub_2(volatile short *, short, int);
+int __atomic_fetch_sub  (volatile int *, int, int);
+int __atomic_fetch_sub_4(volatile int *, int, int);
+long long int __atomic_fetch_sub  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_sub_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_sub   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_sub_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_and  (volatile char *, char, int);
+char __atomic_fetch_and_1(volatile char *, char, int);
+short __atomic_fetch_and  (volatile short *, short, int);
+short __atomic_fetch_and_2(volatile short *, short, int);
+int __atomic_fetch_and  (volatile int *, int, int);
+int __atomic_fetch_and_4(volatile int *, int, int);
+long long int __atomic_fetch_and  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_and_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_and   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_and_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_nand  (volatile char *, char, int);
+char __atomic_fetch_nand_1(volatile char *, char, int);
+short __atomic_fetch_nand  (volatile short *, short, int);
+short __atomic_fetch_nand_2(volatile short *, short, int);
+int __atomic_fetch_nand  (volatile int *, int, int);
+int __atomic_fetch_nand_4(volatile int *, int, int);
+long long int __atomic_fetch_nand  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_nand_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_nand   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_nand_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_xor  (volatile char *, char, int);
+char __atomic_fetch_xor_1(volatile char *, char, int);
+short __atomic_fetch_xor  (volatile short *, short, int);
+short __atomic_fetch_xor_2(volatile short *, short, int);
+int __atomic_fetch_xor  (volatile int *, int, int);
+int __atomic_fetch_xor_4(volatile int *, int, int);
+long long int __atomic_fetch_xor  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_xor_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_xor   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_xor_16(volatile __int128 *, __int128, int);
+
+char __atomic_fetch_or  (volatile char *, char, int);
+char __atomic_fetch_or_1(volatile char *, char, int);
+short __atomic_fetch_or  (volatile short *, short, int);
+short __atomic_fetch_or_2(volatile short *, short, int);
+int __atomic_fetch_or  (volatile int *, int, int);
+int __atomic_fetch_or_4(volatile int *, int, int);
+long long int __atomic_fetch_or  (volatile long long int *, long long int, int);
+long long int __atomic_fetch_or_8(volatile long long int *, long long int, int);
+__int128 __atomic_fetch_or   (volatile __int128 *, __int128, int);
+__int128 __atomic_fetch_or_16(volatile __int128 *, __int128, int);
+
+_Bool __atomic_always_lock_free(unsigned long, const volatile void *);
+_Bool __atomic_is_lock_free(unsigned long, const volatile void *);
+
+void __atomic_thread_fence (int);
+void __atomic_signal_fence (int);
+void __atomic_feraiseexcept(int);
