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