| //===- 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 |