 |
NEURON
|
Go to the documentation of this file. 32 #ifndef __gccfeatures_dot_hpp 33 #define __gccfeatures_dot_hpp 35 #define R123_GNUC_VERSION (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) 37 #if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__) && !defined(__aarch64__) 38 # error "This code has only been tested on x86 and powerpc platforms." 39 #include <including_a_nonexistent_file_will_stop_some_compilers_from_continuing_with_a_hopeless_task> 48 #include <ppu_intrinsics.h> 51 #ifndef R123_STATIC_INLINE 52 #define R123_STATIC_INLINE static __inline__ 55 #ifndef R123_FORCE_INLINE 56 #if R123_GNUC_VERSION >= 40000 57 #define R123_FORCE_INLINE(decl) decl __attribute__((always_inline)) 59 #define R123_FORCE_INLINE(decl) decl 63 #ifndef R123_CUDA_DEVICE 64 #define R123_CUDA_DEVICE 69 #define R123_ASSERT(x) assert(x) 72 #ifndef R123_BUILTIN_EXPECT 73 #define R123_BUILTIN_EXPECT(expr,likely) __builtin_expect(expr,likely) 83 #if (__cplusplus>=201103L || (R123_GNUC_VERSION<40700 && defined(__GCC_EXPERIMENTAL_CXX0X__) )) 89 #ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS 90 #define R123_USE_CXX11_UNRESTRICTED_UNIONS ((R123_GNUC_VERSION >= 40600) && GNU_CXX11) 93 #ifndef R123_USE_CXX11_STATIC_ASSERT 94 #define R123_USE_CXX11_STATIC_ASSERT ((R123_GNUC_VERSION >= 40300) && GNU_CXX11) 97 #ifndef R123_USE_CXX11_CONSTEXPR 98 #define R123_USE_CXX11_CONSTEXPR ((R123_GNUC_VERSION >= 40600) && GNU_CXX11) 101 #ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS 102 #define R123_USE_CXX11_EXPLICIT_CONVERSIONS ((R123_GNUC_VERSION >= 40500) && GNU_CXX11) 105 #ifndef R123_USE_CXX11_RANDOM 106 #define R123_USE_CXX11_RANDOM ((R123_GNUC_VERSION>=40500) && GNU_CXX11) 109 #ifndef R123_USE_CXX11_TYPE_TRAITS 110 #define R123_USE_CXX11_TYPE_TRAITS ((R123_GNUC_VERSION>=40400) && GNU_CXX11) 113 #ifndef R123_USE_AES_NI 115 #define R123_USE_AES_NI 1 117 #define R123_USE_AES_NI 0 121 #ifndef R123_USE_SSE4_2 123 #define R123_USE_SSE4_2 1 125 #define R123_USE_SSE4_2 0 129 #ifndef R123_USE_SSE4_1 131 #define R123_USE_SSE4_1 1 133 #define R123_USE_SSE4_1 0 141 #define R123_USE_SSE 1 143 #define R123_USE_SSE 0 147 #ifndef R123_USE_AES_OPENSSL 153 #define R123_USE_AES_OPENSSL 0 156 #ifndef R123_USE_GNU_UINT128 158 #define R123_USE_GNU_UINT128 1 160 #define R123_USE_GNU_UINT128 0 164 #ifndef R123_USE_ASM_GNU 166 #if (defined(__x86_64__)||defined(__i386__)) 167 #define R123_USE_ASM_GNU 1 169 #define R123_USE_ASM_GNU 0 173 #ifndef R123_USE_CPUID_MSVC 174 #define R123_USE_CPUID_MSVC 0 177 #ifndef R123_USE_X86INTRIN_H 179 #if ((defined(__x86_64__)||defined(__i386__)) && R123_GNUC_VERSION >= 40402) 180 #define R123_USE_X86INTRIN_H 1 182 #define R123_USE_X86INTRIN_H 0 186 #ifndef R123_USE_IA32INTRIN_H 187 #define R123_USE_IA32INTRIN_H 0 190 #ifndef R123_USE_XMMINTRIN_H 191 #define R123_USE_XMMINTRIN_H 0 194 #ifndef R123_USE_EMMINTRIN_H 200 #define R123_USE_EMMINTRIN_H (R123_USE_SSE && (R123_GNUC_VERSION < 40402)) 203 #ifndef R123_USE_SMMINTRIN_H 204 #define R123_USE_SMMINTRIN_H ((R123_USE_SSE4_1 || R123_USE_SSE4_2) && (R123_GNUC_VERSION < 40402)) 207 #ifndef R123_USE_WMMINTRIN_H 208 #define R123_USE_WMMINTRIN_H 0 211 #ifndef R123_USE_INTRIN_H 212 #define R123_USE_INTRIN_H 0 215 #ifndef R123_USE_MULHILO32_ASM 216 #define R123_USE_MULHILO32_ASM 0 219 #ifndef R123_USE_MULHILO64_ASM 220 #define R123_USE_MULHILO64_ASM 0 223 #ifndef R123_USE_MULHILO64_MSVC_INTRIN 224 #define R123_USE_MULHILO64_MSVC_INTRIN 0 227 #ifndef R123_USE_MULHILO64_CUDA_INTRIN 228 #define R123_USE_MULHILO64_CUDA_INTRIN 0 231 #ifndef R123_USE_MULHILO64_OPENCL_INTRIN 232 #define R123_USE_MULHILO64_OPENCL_INTRIN 0 235 #ifndef R123_USE_MULHILO64_MULHI_INTRIN 236 #if (defined(__powerpc64__)) 237 #define R123_USE_MULHILO64_MULHI_INTRIN 1 239 #define R123_USE_MULHILO64_MULHI_INTRIN 0 243 #ifndef R123_MULHILO64_MULHI_INTRIN 244 #define R123_MULHILO64_MULHI_INTRIN __mulhdu 247 #ifndef R123_USE_MULHILO32_MULHI_INTRIN 248 #define R123_USE_MULHILO32_MULHI_INTRIN 0 251 #ifndef R123_MULHILO32_MULHI_INTRIN 252 #define R123_MULHILO32_MULHI_INTRIN __mulhwu 255 #ifndef __STDC_CONSTANT_MACROS 256 #define __STDC_CONSTANT_MACROS 260 #error UINT64_C not defined. You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>