Loading...
Searching...
No Matches
Go to the documentation of this file.
46#ifndef __xlcfeatures_dot_hpp
47#define __xlcfeatures_dot_hpp
49#if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__)
50#error "This code has only been tested on x86 and PowerPC platforms."
51#include <including_a_nonexistent_file_will_stop_some_compilers_from_continuing_with_a_hopeless_task>
67#ifndef R123_STATIC_INLINE
68#define R123_STATIC_INLINE static inline
71#ifndef R123_FORCE_INLINE
72#define R123_FORCE_INLINE(decl) decl __attribute__((__always_inline__))
75#ifndef R123_CUDA_DEVICE
76#define R123_CUDA_DEVICE
81#define R123_ASSERT(x) assert(x)
84#ifndef R123_BUILTIN_EXPECT
85#define R123_BUILTIN_EXPECT(expr, likely) __builtin_expect(expr, likely)
88#ifndef R123_USE_AES_NI
89#define R123_USE_AES_NI 0
92#ifndef R123_USE_SSE4_2
93#define R123_USE_SSE4_2 0
96#ifndef R123_USE_SSE4_1
97#define R123_USE_SSE4_1 0
101#define R123_USE_SSE 0
104#ifndef R123_USE_AES_OPENSSL
110#define R123_USE_AES_OPENSSL 0
113#ifndef R123_USE_GNU_UINT128
114#define R123_USE_GNU_UINT128 0
117#ifndef R123_USE_ASM_GNU
118#define R123_USE_ASM_GNU 1
121#ifndef R123_USE_CPUID_MSVC
122#define R123_USE_CPUID_MSVC 0
125#ifndef R123_USE_X86INTRIN_H
126#define R123_USE_X86INTRIN_H 0
129#ifndef R123_USE_IA32INTRIN_H
130#define R123_USE_IA32INTRIN_H 0
133#ifndef R123_USE_XMMINTRIN_H
134#define R123_USE_XMMINTRIN_H 0
137#ifndef R123_USE_EMMINTRIN_H
138#define R123_USE_EMMINTRIN_H 0
141#ifndef R123_USE_SMMINTRIN_H
142#define R123_USE_SMMINTRIN_H 0
145#ifndef R123_USE_WMMINTRIN_H
146#define R123_USE_WMMINTRIN_H 0
149#ifndef R123_USE_INTRIN_H
151#define R123_USE_INTRIN_H 1
153#define R123_USE_INTRIN_H 0
157#ifndef R123_USE_MULHILO32_ASM
158#define R123_USE_MULHILO32_ASM 0
161#ifndef R123_USE_MULHILO64_MULHI_INTRIN
162#if(defined(__powerpc64__))
163#define R123_USE_MULHILO64_MULHI_INTRIN 1
165#define R123_USE_MULHILO64_MULHI_INTRIN 0
169#ifndef R123_MULHILO64_MULHI_INTRIN
170#define R123_MULHILO64_MULHI_INTRIN __mulhdu
173#ifndef R123_USE_MULHILO32_MULHI_INTRIN
174#define R123_USE_MULHILO32_MULHI_INTRIN 0
177#ifndef R123_MULHILO32_MULHI_INTRIN
178#define R123_MULHILO32_MULHI_INTRIN __mulhwu
181#ifndef R123_USE_MULHILO64_ASM
182#if defined(__powerpc64__)
183#define R123_USE_MULHILO64_ASM (1 && !(R123_USE_MULHILO64_MULHI_INTRIN))
185#define R123_USE_MULHILO64_ASM (0 && !(R123_USE_MULHILO64_MULHI_INTRIN))
189#ifndef R123_USE_MULHILO64_MSVC_INTRIN
190#define R123_USE_MULHILO64_MSVC_INTRIN 0
193#ifndef R123_USE_MULHILO64_CUDA_INTRIN
194#define R123_USE_MULHILO64_CUDA_INTRIN 0
197#ifndef R123_USE_MULHILO64_OPENCL_INTRIN
198#define R123_USE_MULHILO64_OPENCL_INTRIN 0
201#ifndef __STDC_CONSTANT_MACROS
202#define __STDC_CONSTANT_MACROS
206#error UINT64_C not defined. You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>