NEURON
crayfeatures.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2014 EPFL-BBP, All rights reserved.
3 
4 THIS SOFTWARE IS PROVIDED BY THE BLUE BRAIN PROJECT "AS IS"
5 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
6 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
7 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE BLUE BRAIN PROJECT
8 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
9 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
10 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
11 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
12 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
13 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
14 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15 
16 Note: Minimum/Initial version derived from openclfeatures.h to work
17 with cray compiler.
18 */
19 
20 #ifndef __crayfeatures_dot_hpp
21 #define __crayfeatures_dot_hpp
22 
23 #ifndef R123_STATIC_INLINE
24 #define R123_STATIC_INLINE static __inline__
25 #endif
26 
27 #ifndef R123_FORCE_INLINE
28 #define R123_FORCE_INLINE(decl) decl
29 #endif
30 
31 #ifndef R123_CUDA_DEVICE
32 #define R123_CUDA_DEVICE
33 #endif
34 
35 #ifndef R123_ASSERT
36 #include <assert.h>
37 #define R123_ASSERT(x) assert(x)
38 #endif
39 
40 #ifndef R123_BUILTIN_EXPECT
41 #define R123_BUILTIN_EXPECT(expr,likely) expr
42 #endif
43 
44 #ifndef R123_USE_WMMINTRIN_H
45 #define R123_USE_WMMINTRIN_H 0
46 #endif
47 
48 #ifndef R123_USE_INTRIN_H
49 #define R123_USE_INTRIN_H 0
50 #endif
51 
52 #ifndef R123_USE_MULHILO32_ASM
53 #define R123_USE_MULHILO32_ASM 0
54 #endif
55 
56 #ifndef R123_USE_MULHILO64_ASM
57 #define R123_USE_MULHILO64_ASM 0
58 #endif
59 
60 #ifndef R123_USE_MULHILO64_MSVC_INTRIN
61 #define R123_USE_MULHILO64_MSVC_INTRIN 0
62 #endif
63 
64 #ifndef R123_USE_MULHILO64_CUDA_INTRIN
65 #define R123_USE_MULHILO64_CUDA_INTRIN 0
66 #endif
67 
68 #ifndef R123_USE_MULHILO64_OPENCL_INTRIN
69 #define R123_USE_MULHILO64_OPENCL_INTRIN 0
70 #endif
71 
72 #ifndef R123_USE_MULHILO64_MULHI_INTRIN
73 #if (defined(__powerpc64__))
74 #define R123_USE_MULHILO64_MULHI_INTRIN 1
75 #else
76 #define R123_USE_MULHILO64_MULHI_INTRIN 0
77 #endif
78 #endif
79 
80 #ifndef R123_MULHILO64_MULHI_INTRIN
81 #define R123_MULHILO64_MULHI_INTRIN __mulhdu
82 #endif
83 
84 #ifndef R123_USE_MULHILO32_MULHI_INTRIN
85 #define R123_USE_MULHILO32_MULHI_INTRIN 0
86 #endif
87 
88 #ifndef R123_MULHILO32_MULHI_INTRIN
89 #define R123_MULHILO32_MULHI_INTRIN __mulhwu
90 #endif
91 
92 #ifndef __STDC_CONSTANT_MACROS
93 #define __STDC_CONSTANT_MACROS
94 #endif
95 #include <stdint.h>
96 #ifndef UINT64_C
97 #error UINT64_C not defined. You must define __STDC_CONSTANT_MACROS before you #include <stdint.h>
98 #endif
99 
100 #endif