|  | //===- subzero/crosstest/test_sync_atomic.h - Test prototypes ---*- C++ -*-===// | 
|  | // | 
|  | //                        The Subzero Code Generator | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file declares the function prototypes for cross testing atomic | 
|  | // intrinsics. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "test_sync_atomic.def" | 
|  |  | 
|  | #define X(inst, type)                                                          \ | 
|  | type test_##inst(bool fetch_first, volatile type *ptr, type a);              \ | 
|  | type test_alloca_##inst(bool fetch, volatile type *ptr, type a);             \ | 
|  | type test_const_##inst(bool fetch, volatile type *ptr, type ignored); | 
|  |  | 
|  | FOR_ALL_RMWOP_TYPES(X) | 
|  | #undef X | 
|  |  | 
|  | #define X(type)                                                                \ | 
|  | type test_val_cmp_swap(volatile type *ptr, type oldval, type newval);        \ | 
|  | type test_val_cmp_swap_loop(volatile type *ptr, type oldval, type newval); | 
|  |  | 
|  | ATOMIC_TYPE_TABLE | 
|  | #undef X |