| //===- subzero/crosstest/test_bitmanip.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 bit manipulation intrinsics. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef TEST_BIT_MANIP_DEF | |
| #define TEST_BIT_MANIP_DEF | |
| #include "xdefs.h" | |
| #define STR(s) #s | |
| #define BMI_OPS \ | |
| /* inst */ \ | |
| X(ctlz) \ | |
| X(cttz) \ | |
| X(ctpop) | |
| // #define X(inst) | |
| #define BMI_TYPES \ | |
| /* type */ \ | |
| X(uint32) \ | |
| X(uint64) | |
| // #define X(type) | |
| #define FOR_ALL_BMI_TYPES_INST(F, inst) \ | |
| F(inst, uint32) \ | |
| F(inst, uint64) | |
| #define FOR_ALL_BMI_OP_TYPES(X) \ | |
| FOR_ALL_BMI_TYPES_INST(X, ctlz) \ | |
| FOR_ALL_BMI_TYPES_INST(X, cttz) \ | |
| FOR_ALL_BMI_TYPES_INST(X, ctpop) | |
| //#define X(inst, type) | |
| #define BSWAP_TABLE \ | |
| /* type, builtin_name */ \ | |
| X(uint16_t, __builtin_bswap16) \ | |
| X(uint32, __builtin_bswap32) \ | |
| X(uint64, __builtin_bswap64) | |
| #endif // TEST_BIT_MANIP_DEF |