|  | //===- subzero/crosstest/test_sync_atomic.def - macros for tests -*- C++ -*-===// | 
|  | // | 
|  | //                        The Subzero Code Generator | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file defines macros for testing atomic intrinsics (via sync builtins). | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef TEST_SYNC_ATOMIC_DEF | 
|  | #define TEST_SYNC_ATOMIC_DEF | 
|  |  | 
|  | #include "xdefs.h" | 
|  |  | 
|  | #define STR(s) #s | 
|  |  | 
|  | #define RMWOP_TABLE  \ | 
|  | /* inst */         \ | 
|  | X(add)             \ | 
|  | X(sub)             \ | 
|  | X(or)              \ | 
|  | X(and)             \ | 
|  | X(xor) | 
|  | //#define X(inst) | 
|  |  | 
|  | #define ATOMIC_TYPE_TABLE \ | 
|  | /* type */              \ | 
|  | X(uint8_t)              \ | 
|  | X(uint16_t)             \ | 
|  | X(uint32_t)             \ | 
|  | X(uint64) | 
|  | //#define X(type) | 
|  |  | 
|  | #define FOR_ALL_RMWTYPES_INST(F, inst) \ | 
|  | F(inst, uint8_t)                     \ | 
|  | F(inst, uint16_t)                    \ | 
|  | F(inst, uint32_t)                    \ | 
|  | F(inst, uint64) | 
|  |  | 
|  | #define FOR_ALL_RMWOP_TYPES(X)      \ | 
|  | FOR_ALL_RMWTYPES_INST(X, add)     \ | 
|  | FOR_ALL_RMWTYPES_INST(X, sub)     \ | 
|  | FOR_ALL_RMWTYPES_INST(X, or)      \ | 
|  | FOR_ALL_RMWTYPES_INST(X, and)     \ | 
|  | FOR_ALL_RMWTYPES_INST(X, xor) | 
|  | //#define X(inst, type) | 
|  |  | 
|  | #endif // TEST_SYNC_ATOMIC_DEF |