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