Loading...
Searching...
No Matches
Go to the documentation of this file.
32#ifndef __icpcfeatures_dot_hpp
33#define __icpcfeatures_dot_hpp
36#define R123_GNUC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
38#if !defined(__x86_64__) && !defined(__i386__)
39#error "This code has only been tested on x86 platforms."
47#ifndef R123_STATIC_INLINE
48#define R123_STATIC_INLINE static inline
51#ifndef R123_FORCE_INLINE
52#define R123_FORCE_INLINE(decl) decl __attribute__((always_inline))
55#ifndef R123_CUDA_DEVICE
56#define R123_CUDA_DEVICE
61#define R123_ASSERT(x) assert(x)
64#ifndef R123_BUILTIN_EXPECT
65#define R123_BUILTIN_EXPECT(expr, likely) __builtin_expect(expr, likely)
86#ifndef R123_USE_SSE4_2
88#define R123_USE_SSE4_2 1
90#define R123_USE_SSE4_2 0
94#ifndef R123_USE_SSE4_1
96#define R123_USE_SSE4_1 1
98#define R123_USE_SSE4_1 0
104#define R123_USE_SSE 1
106#define R123_USE_SSE 0
110#ifndef R123_USE_AES_NI
123#define R123_USE_AES_NI ((__ICC >= 1101) && 1 )
125#define R123_USE_AES_NI ((__ICC >= 1101) && 0 )
129#ifndef R123_USE_AES_OPENSSL
135#define R123_USE_AES_OPENSSL 0
138#ifndef R123_USE_GNU_UINT128
139#define R123_USE_GNU_UINT128 0
142#ifndef R123_USE_ASM_GNU
143#define R123_USE_ASM_GNU 1
146#ifndef R123_USE_CPUID_MSVC
147#define R123_USE_CPUID_MSVC 0
150#ifndef R123_USE_X86INTRIN_H
151#define R123_USE_X86INTRIN_H 0
154#ifndef R123_USE_IA32INTRIN_H
155#define R123_USE_IA32INTRIN_H 1
158#ifndef R123_USE_XMMINTRIN_H
159#define R123_USE_XMMINTRIN_H 0
162#ifndef R123_USE_EMMINTRIN_H
163#define R123_USE_EMMINTRIN_H 1
166#ifndef R123_USE_SMMINTRIN_H
167#define R123_USE_SMMINTRIN_H 1
170#ifndef R123_USE_WMMINTRIN_H
171#define R123_USE_WMMINTRIN_H 1
174#ifndef R123_USE_INTRIN_H
175#define R123_USE_INTRIN_H 0
178#ifndef R123_USE_MULHILO16_ASM
179#define R123_USE_MULHILO16_ASM 0
182#ifndef R123_USE_MULHILO32_ASM
183#define R123_USE_MULHILO32_ASM 0
186#ifndef R123_USE_MULHILO64_ASM
187#define R123_USE_MULHILO64_ASM 1
190#ifndef R123_USE_MULHILO64_MSVC_INTRIN
191#define R123_USE_MULHILO64_MSVC_INTRIN 0
194#ifndef R123_USE_MULHILO64_CUDA_INTRIN
195#define R123_USE_MULHILO64_CUDA_INTRIN 0
198#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
199#define R123_USE_MULHILO64_OPENCL_INTRIN 0
202#ifndef __STDC_CONSTANT_MACROS
203#define __STDC_CONSTANT_MACROS
207#error UINT64_C not defined. You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>