1 //===- subzero/crosstest/test_bitmanip.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 bit manipulation intrinsics. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef TEST_BIT_MANIP_DEF 15 #define TEST_BIT_MANIP_DEF 16 17 #include "xdefs.h" 18 19 #define STR(s) #s 20 21 #define BMI_OPS \ 22 /* inst */ \ 23 X(ctlz) \ 24 X(cttz) \ 25 X(ctpop) 26 // #define X(inst) 27 28 #define BMI_TYPES \ 29 /* type */ \ 30 X(uint32) \ 31 X(uint64) 32 // #define X(type) 33 34 #define FOR_ALL_BMI_TYPES_INST(F, inst) \ 35 F(inst, uint32) \ 36 F(inst, uint64) 37 38 #define FOR_ALL_BMI_OP_TYPES(X) \ 39 FOR_ALL_BMI_TYPES_INST(X, ctlz) \ 40 FOR_ALL_BMI_TYPES_INST(X, cttz) \ 41 FOR_ALL_BMI_TYPES_INST(X, ctpop) 42 //#define X(inst, type) 43 44 #define BSWAP_TABLE \ 45 /* type, builtin_name */ \ 46 X(uint16_t, __builtin_bswap16) \ 47 X(uint32, __builtin_bswap32) \ 48 X(uint64, __builtin_bswap64) 49 50 #endif // TEST_BIT_MANIP_DEF 51