1 !
2 ! Copyright (c) 2004-2018, NVIDIA CORPORATION.  All rights reserved.
3 !
4 ! Licensed under the Apache License, Version 2.0 (the "License");
5 ! you may not use this file except in compliance with the License.
6 ! You may obtain a copy of the License at
7 !
8 !     http://www.apache.org/licenses/LICENSE-2.0
9 !
10 ! Unless required by applicable law or agreed to in writing, software
11 ! distributed under the License is distributed on an "AS IS" BASIS,
12 ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ! See the License for the specific language governing permissions and
14 ! limitations under the License.
15 !
16 
17 
18 ! directives.h -- contains preprocessor directives for F90 rte files
19 
20 #define PREFIX(x) f90##x
21 #define _PREFIX(x) _f90##x
22 
23 #ifdef DESC_I8
24 #define DESC_INT INTEGER(8)
25 #define F90_matmul_cplx16_contmxm	PREFIX(_mm_cplx16_contmxm_i8)
26 #define F90_matmul_cplx16_contmxv	PREFIX(_mm_cplx16_contmxv_i8)
27 #define F90_matmul_cplx16_contvxm	PREFIX(_mm_cplx16_contvxm_i8)
28 #define F90_matmul_cplx16_str1		PREFIX(_mm_cplx16_str1_i8)
29 #define F90_matmul_cplx16_str1_mxv	PREFIX(_mm_cplx16_str1_mxv_i8)
30 #define F90_matmul_cplx16_str1_mxv_t	PREFIX(_mm_cplx16_str1_mxv_t_i8)
31 #define F90_matmul_cplx16_str1_vxm	PREFIX(_mm_cplx16_str1_vxm_i8)
32 #define F90_matmul_cplx32_contmxm	PREFIX(_mm_cplx32_contmxm_i8)
33 #define F90_matmul_cplx32_contmxv	PREFIX(_mm_cplx32_contmxv_i8)
34 #define F90_matmul_cplx32_contvxm	PREFIX(_mm_cplx32_contvxm_i8)
35 #define F90_matmul_cplx32_str1		PREFIX(_mm_cplx32_str1_i8)
36 #define F90_matmul_cplx32_str1_mxv	PREFIX(_mm_cplx32_str1_mxv_i8)
37 #define F90_matmul_cplx8_contmxm	PREFIX(_mm_cplx8_contmxm_i8)
38 #define F90_matmul_cplx8_contmxv	PREFIX(_mm_cplx8_contmxv_i8)
39 #define F90_matmul_cplx8_contvxm	PREFIX(_mm_cplx8_contvxm_i8)
40 #define F90_matmul_cplx8_str1		PREFIX(_mm_cplx8_str1_i8)
41 #define F90_matmul_cplx8_str1_mxv	PREFIX(_mm_cplx8_str1_mxv_i8)
42 #define F90_matmul_cplx8_str1_mxv_t	PREFIX(_mm_cplx8_str1_mxv_t_i8)
43 #define F90_matmul_cplx8_str1_t		PREFIX(_mm_cplx8_str1_t_i8)
44 #define F90_matmul_cplx8_str1_vxm	PREFIX(_mm_cplx8_str1_vxm_i8)
45 #define F90_matmul_int1_contmxm		PREFIX(_mm_int1_contmxm_i8)
46 #define F90_matmul_int1_contmxv		PREFIX(_mm_int1_contmxv_i8)
47 #define F90_matmul_int1_contvxm		PREFIX(_mm_int1_contvxm_i8)
48 #define F90_matmul_int1_str1		PREFIX(_mm_int1_str1_i8)
49 #define F90_matmul_int1_str1_mxv	PREFIX(_mm_int1_str1_mxv_i8)
50 #define F90_matmul_int1_str1_vxm	PREFIX(_mm_int1_str1_vxm_i8)
51 #define F90_matmul_int2_contmxm		PREFIX(_mm_int2_contmxm_i8)
52 #define F90_matmul_int2_contmxv		PREFIX(_mm_int2_contmxv_i8)
53 #define F90_matmul_int2_contvxm		PREFIX(_mm_int2_contvxm_i8)
54 #define F90_matmul_int2_str1		PREFIX(_mm_int2_str1_i8)
55 #define F90_matmul_int2_str1_mxv	PREFIX(_mm_int2_str1_mxv_i8)
56 #define F90_matmul_int2_str1_vxm	PREFIX(_mm_int2_str1_vxm_i8)
57 #define F90_matmul_int4_contmxm		PREFIX(_mm_int4_contmxm_i8)
58 #define F90_matmul_int4_contmxv		PREFIX(_mm_int4_contmxv_i8)
59 #define F90_matmul_int4_contvxm		PREFIX(_mm_int4_contvxm_i8)
60 #define F90_matmul_int4_str1		PREFIX(_mm_int4_str1_i8)
61 #define F90_matmul_int4_str1_mxv	PREFIX(_mm_int4_str1_mxv_i8)
62 #define F90_matmul_int4_str1_vxm	PREFIX(_mm_int4_str1_vxm_i8)
63 #define F90_matmul_int8_contmxm		PREFIX(_mm_int8_contmxm_i8)
64 #define F90_matmul_int8_contmxv		PREFIX(_mm_int8_contmxv_i8)
65 #define F90_matmul_int8_contvxm		PREFIX(_mm_int8_contvxm_i8)
66 #define F90_matmul_int8_str1		PREFIX(_mm_int8_str1_i8)
67 #define F90_matmul_int8_str1_mxv	PREFIX(_mm_int8_str1_mxv_i8)
68 #define F90_matmul_int8_str1_vxm	PREFIX(_mm_int8_str1_vxm_i8)
69 #define F90_matmul_log1_contmxm		PREFIX(_mm_log1_contmxm_i8)
70 #define F90_matmul_log1_contmxv		PREFIX(_mm_log1_contmxv_i8)
71 #define F90_matmul_log1_contvxm		PREFIX(_mm_log1_contvxm_i8)
72 #define F90_matmul_log2_contmxm		PREFIX(_mm_log2_contmxm_i8)
73 #define F90_matmul_log2_contmxv		PREFIX(_mm_log2_contmxv_i8)
74 #define F90_matmul_log2_contvxm		PREFIX(_mm_log2_contvxm_i8)
75 #define F90_matmul_log4_contmxm		PREFIX(_mm_log4_contmxm_i8)
76 #define F90_matmul_log4_contmxv		PREFIX(_mm_log4_contmxv_i8)
77 #define F90_matmul_log4_contvxm		PREFIX(_mm_log4_contvxm_i8)
78 #define F90_matmul_log8_contmxm		PREFIX(_mm_log8_contmxm_i8)
79 #define F90_matmul_log8_contmxv		PREFIX(_mm_log8_contmxv_i8)
80 #define F90_matmul_log8_contvxm		PREFIX(_mm_log8_contvxm_i8)
81 #define F90_matmul_real16_contmxm	PREFIX(_mm_real16_contmxm_i8)
82 #define F90_matmul_real16_contmxv	PREFIX(_mm_real16_contmxv_i8)
83 #define F90_matmul_real16_contvxm	PREFIX(_mm_real16_contvxm_i8)
84 #define F90_matmul_real4_contmxm	PREFIX(_mm_real4_contmxm_i8)
85 #define F90_matmul_real4_contmxv	PREFIX(_mm_real4_contmxv_i8)
86 #define F90_matmul_real4_contvxm	PREFIX(_mm_real4_contvxm_i8)
87 #define F90_matmul_real4_str1		PREFIX(_mm_real4_str1_i8)
88 #define F90_matmul_real4_str1_mxv	PREFIX(_mm_real4_str1_mxv_i8)
89 #define F90_matmul_real4_str1_mxv_t	PREFIX(_mm_real4_str1_mxv_t_i8)
90 #define F90_matmul_real4_str1_t		PREFIX(_mm_real4_str1_t_i8)
91 #define F90_matmul_real4_str1_vxm	PREFIX(_mm_real4_str1_vxm_i8)
92 #define F90_matmul_real8_contmxm	PREFIX(_mm_real8_contmxm_i8)
93 #define F90_matmul_real8_contmxv	PREFIX(_mm_real8_contmxv_i8)
94 #define F90_matmul_real8_contvxm	PREFIX(_mm_real8_contvxm_i8)
95 #define F90_matmul_real8_str1		PREFIX(_mm_real8_str1_i8)
96 #define _F90_matmul_real8_str1a		_PREFIX(_mm_real8_str1a_i8)
97 #define _F90_matmul_real8_str1b		_PREFIX(_mm_real8_str1b_i8)
98 #define _F90_matmul_real8_str1c		_PREFIX(_mm_real8_str1c_i8)
99 #define F90_matmul_real8_str1_mxv	PREFIX(_mm_real8_str1_mxv_i8)
100 #define F90_matmul_real8_str1_mxv_t	PREFIX(_mm_real8_str1_mxv_t_i8)
101 #define F90_matmul_real8_str1_vxm	PREFIX(_mm_real8_str1_vxm_i8)
102 #else
103 #define DESC_INT INTEGER(4)
104 #define F90_matmul_cplx16_contmxm	PREFIX(_mm_cplx16_contmxm)
105 #define F90_matmul_cplx16_contmxv	PREFIX(_mm_cplx16_contmxv)
106 #define F90_matmul_cplx16_contvxm	PREFIX(_mm_cplx16_contvxm)
107 #define F90_matmul_cplx16_str1		PREFIX(_mm_cplx16_str1)
108 #define F90_matmul_cplx16_str1_mxv	PREFIX(_mm_cplx16_str1_mxv)
109 #define F90_matmul_cplx16_str1_mxv_t	PREFIX(_mm_cplx16_str1_mxv_t)
110 #define F90_matmul_cplx16_str1_vxm	PREFIX(_mm_cplx16_str1_vxm)
111 #define F90_matmul_cplx32_contmxm	PREFIX(_mm_cplx32_contmxm)
112 #define F90_matmul_cplx32_contmxv	PREFIX(_mm_cplx32_contmxv)
113 #define F90_matmul_cplx32_contvxm	PREFIX(_mm_cplx32_contvxm)
114 #define F90_matmul_cplx32_str1		PREFIX(_mm_cplx32_str1)
115 #define F90_matmul_cplx32_str1_mxv	PREFIX(_mm_cplx32_str1_mxv)
116 #define F90_matmul_cplx8_contmxm	PREFIX(_mm_cplx8_contmxm)
117 #define F90_matmul_cplx8_contmxv	PREFIX(_mm_cplx8_contmxv)
118 #define F90_matmul_cplx8_contvxm	PREFIX(_mm_cplx8_contvxm)
119 #define F90_matmul_cplx8_str1		PREFIX(_mm_cplx8_str1)
120 #define F90_matmul_cplx8_str1_mxv	PREFIX(_mm_cplx8_str1_mxv)
121 #define F90_matmul_cplx8_str1_mxv_t	PREFIX(_mm_cplx8_str1_mxv_t)
122 #define F90_matmul_cplx8_str1_t		PREFIX(_mm_cplx8_str1_t)
123 #define F90_matmul_cplx8_str1_vxm	PREFIX(_mm_cplx8_str1_vxm)
124 #define F90_matmul_int1_contmxm		PREFIX(_mm_int1_contmxm)
125 #define F90_matmul_int1_contmxv		PREFIX(_mm_int1_contmxv)
126 #define F90_matmul_int1_contvxm		PREFIX(_mm_int1_contvxm)
127 #define F90_matmul_int1_str1		PREFIX(_mm_int1_str1)
128 #define F90_matmul_int1_str1_mxv	PREFIX(_mm_int1_str1_mxv)
129 #define F90_matmul_int1_str1_vxm	PREFIX(_mm_int1_str1_vxm)
130 #define F90_matmul_int2_contmxm		PREFIX(_mm_int2_contmxm)
131 #define F90_matmul_int2_contmxv		PREFIX(_mm_int2_contmxv)
132 #define F90_matmul_int2_contvxm		PREFIX(_mm_int2_contvxm)
133 #define F90_matmul_int2_str1		PREFIX(_mm_int2_str1)
134 #define F90_matmul_int2_str1_mxv	PREFIX(_mm_int2_str1_mxv)
135 #define F90_matmul_int2_str1_vxm	PREFIX(_mm_int2_str1_vxm)
136 #define F90_matmul_int4_contmxm		PREFIX(_mm_int4_contmxm)
137 #define F90_matmul_int4_contmxv		PREFIX(_mm_int4_contmxv)
138 #define F90_matmul_int4_contvxm		PREFIX(_mm_int4_contvxm)
139 #define F90_matmul_int4_str1		PREFIX(_mm_int4_str1)
140 #define F90_matmul_int4_str1_mxv	PREFIX(_mm_int4_str1_mxv)
141 #define F90_matmul_int4_str1_vxm	PREFIX(_mm_int4_str1_vxm)
142 #define F90_matmul_int8_contmxm		PREFIX(_mm_int8_contmxm)
143 #define F90_matmul_int8_contmxv		PREFIX(_mm_int8_contmxv)
144 #define F90_matmul_int8_contvxm		PREFIX(_mm_int8_contvxm)
145 #define F90_matmul_int8_str1		PREFIX(_mm_int8_str1)
146 #define F90_matmul_int8_str1_mxv	PREFIX(_mm_int8_str1_mxv)
147 #define F90_matmul_int8_str1_vxm	PREFIX(_mm_int8_str1_vxm)
148 #define F90_matmul_log1_contmxm		PREFIX(_mm_log1_contmxm)
149 #define F90_matmul_log1_contmxv		PREFIX(_mm_log1_contmxv)
150 #define F90_matmul_log1_contvxm		PREFIX(_mm_log1_contvxm)
151 #define F90_matmul_log2_contmxm		PREFIX(_mm_log2_contmxm)
152 #define F90_matmul_log2_contmxv		PREFIX(_mm_log2_contmxv)
153 #define F90_matmul_log2_contvxm		PREFIX(_mm_log2_contvxm)
154 #define F90_matmul_log4_contmxm		PREFIX(_mm_log4_contmxm)
155 #define F90_matmul_log4_contmxv		PREFIX(_mm_log4_contmxv)
156 #define F90_matmul_log4_contvxm		PREFIX(_mm_log4_contvxm)
157 #define F90_matmul_log8_contmxm		PREFIX(_mm_log8_contmxm)
158 #define F90_matmul_log8_contmxv		PREFIX(_mm_log8_contmxv)
159 #define F90_matmul_log8_contvxm		PREFIX(_mm_log8_contvxm)
160 #define F90_matmul_real16_contmxm	PREFIX(_mm_real16_contmxm)
161 #define F90_matmul_real16_contmxv	PREFIX(_mm_real16_contmxv)
162 #define F90_matmul_real16_contvxm	PREFIX(_mm_real16_contvxm)
163 #define F90_matmul_real4_contmxm	PREFIX(_mm_real4_contmxm)
164 #define F90_matmul_real4_contmxv	PREFIX(_mm_real4_contmxv)
165 #define F90_matmul_real4_contvxm	PREFIX(_mm_real4_contvxm)
166 #define F90_matmul_real4_str1		PREFIX(_mm_real4_str1)
167 #define F90_matmul_real4_str1_mxv	PREFIX(_mm_real4_str1_mxv)
168 #define F90_matmul_real4_str1_mxv_t	PREFIX(_mm_real4_str1_mxv_t)
169 #define F90_matmul_real4_str1_t		PREFIX(_mm_real4_str1_t)
170 #define F90_matmul_real4_str1_vxm	PREFIX(_mm_real4_str1_vxm)
171 #define F90_matmul_real8_contmxm	PREFIX(_mm_real8_contmxm)
172 #define F90_matmul_real8_contmxv	PREFIX(_mm_real8_contmxv)
173 #define F90_matmul_real8_contvxm	PREFIX(_mm_real8_contvxm)
174 #define F90_matmul_real8_str1		PREFIX(_mm_real8_str1)
175 #define _F90_matmul_real8_str1a		_PREFIX(_mm_real8_str1a)
176 #define _F90_matmul_real8_str1b		_PREFIX(_mm_real8_str1b)
177 #define _F90_matmul_real8_str1c		_PREFIX(_mm_real8_str1c)
178 #define F90_matmul_real8_str1_mxv	PREFIX(_mm_real8_str1_mxv)
179 #define F90_matmul_real8_str1_mxv_t	PREFIX(_mm_real8_str1_mxv_t)
180 #define F90_matmul_real8_str1_vxm	PREFIX(_mm_real8_str1_vxm)
181 #endif /* DESC_I8 */
182