blob: f84afded9b452af7dda362a61589af6d9e3487e3 [file] [log] [blame]
Jan Vounga3a01a22014-07-14 10:32:41 -07001//===- subzero/crosstest/test_sync_atomic.def - macros for tests -*- C++ -*-===//
2//
3// The Subzero Code Generator
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines macros for testing atomic intrinsics (via sync builtins).
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef TEST_SYNC_ATOMIC_DEF
15#define TEST_SYNC_ATOMIC_DEF
16
17#define STR(s) #s
18
19#define RMWOP_TABLE \
20 /* inst */ \
21 X(add) \
22 X(sub) \
23 X(or) \
24 X(and) \
25 X(xor)
26//#define X(inst)
27
28#define ATOMIC_TYPE_TABLE \
29 /* type */ \
30 X(uint8_t) \
31 X(uint16_t) \
32 X(uint32_t) \
33 X(uint64_t)
34//#define X(type)
35
36#define FOR_ALL_RMWTYPES_INST(F, inst) \
37 F(inst, uint8_t) \
38 F(inst, uint16_t) \
39 F(inst, uint32_t) \
40 F(inst, uint64_t)
41
42#define FOR_ALL_RMWOP_TYPES(X) \
43 FOR_ALL_RMWTYPES_INST(X, add) \
44 FOR_ALL_RMWTYPES_INST(X, sub) \
45 FOR_ALL_RMWTYPES_INST(X, or) \
46 FOR_ALL_RMWTYPES_INST(X, and) \
47 FOR_ALL_RMWTYPES_INST(X, xor)
48//#define X(inst, type)
49
50#endif // TEST_SYNC_ATOMIC_DEF