Loading...
Searching...
No Matches
Go to the documentation of this file.
32#ifndef __msvcfeatures_dot_hpp
33#define __msvcfeatures_dot_hpp
39#if !defined(_M_IX86) && !defined(_M_X64)
40#error "This code has only been tested on x86 platforms."
48#ifndef R123_STATIC_INLINE
49#define R123_STATIC_INLINE static __inline
52#ifndef R123_FORCE_INLINE
53#define R123_FORCE_INLINE(decl) _forceinline decl
56#ifndef R123_CUDA_DEVICE
57#define R123_CUDA_DEVICE
62#define R123_ASSERT(x) assert(x)
65#ifndef R123_BUILTIN_EXPECT
66#define R123_BUILTIN_EXPECT(expr, likely) expr
87#ifndef R123_USE_AES_NI
89#define R123_USE_AES_NI 1
91#define R123_USE_AES_NI 0
95#ifndef R123_USE_SSE4_2
96#if defined(_M_X64) || _MSC_VER > 1899
97#define R123_USE_SSE4_2 1
99#define R123_USE_SSE4_2 0
103#ifndef R123_USE_SSE4_1
104#if defined(_M_X64) || _MSC_VER > 1899
105#define R123_USE_SSE4_1 1
107#define R123_USE_SSE4_1 0
112#define R123_USE_SSE 1
115#ifndef R123_USE_AES_OPENSSL
116#define R123_USE_AES_OPENSSL 0
119#ifndef R123_USE_GNU_UINT128
120#define R123_USE_GNU_UINT128 0
123#ifndef R123_USE_ASM_GNU
124#define R123_USE_ASM_GNU 0
127#ifndef R123_USE_CPUID_MSVC
128#define R123_USE_CPUID_MSVC 1
131#ifndef R123_USE_X86INTRIN_H
132#define R123_USE_X86INTRIN_H 0
135#ifndef R123_USE_IA32INTRIN_H
136#define R123_USE_IA32INTRIN_H 0
139#ifndef R123_USE_XMMINTRIN_H
140#define R123_USE_XMMINTRIN_H 0
143#ifndef R123_USE_EMMINTRIN_H
144#define R123_USE_EMMINTRIN_H 1
147#ifndef R123_USE_SMMINTRIN_H
148#define R123_USE_SMMINTRIN_H 1
151#ifndef R123_USE_WMMINTRIN_H
152#define R123_USE_WMMINTRIN_H 1
155#ifndef R123_USE_INTRIN_H
156#define R123_USE_INTRIN_H 1
159#ifndef R123_USE_MULHILO16_ASM
160#define R123_USE_MULHILO16_ASM 0
163#ifndef R123_USE_MULHILO32_ASM
164#define R123_USE_MULHILO32_ASM 0
167#ifndef R123_USE_MULHILO64_ASM
168#define R123_USE_MULHILO64_ASM 0
171#ifndef R123_USE_MULHILO64_MSVC_INTRIN
173#define R123_USE_MULHILO64_MSVC_INTRIN 1
175#define R123_USE_MULHILO64_MSVC_INTRIN 0
179#ifndef R123_USE_MULHILO64_CUDA_INTRIN
180#define R123_USE_MULHILO64_CUDA_INTRIN 0
183#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
184#define R123_USE_MULHILO64_OPENCL_INTRIN 0
187#ifndef __STDC_CONSTANT_MACROS
188#define __STDC_CONSTANT_MACROS
192#error UINT64_C not defined. You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
195#pragma warning(disable : 4244)
196#pragma warning(disable : 4996)
197#pragma warning(disable : 4127)