//===- 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 #define STR(s) #s #define BMI_OPS \ /* inst */ \ X(ctlz) \ X(cttz) \ X(ctpop) // #define X(inst) #define BMI_TYPES \ /* type */ \ X(uint32_t) \ X(uint64_t) // #define X(type) #define FOR_ALL_BMI_TYPES_INST(F, inst) \ F(inst, uint32_t) \ F(inst, uint64_t) #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_t, __builtin_bswap32) \ X(uint64_t, __builtin_bswap64) #endif // TEST_BIT_MANIP_DEF