111
|
1 /* This file contains the definitions and documentation for the
|
|
2 HSAIL builtins used in the GNU compiler.
|
|
3 Copyright (C) 2016-2017 Free Software Foundation, Inc.
|
|
4
|
|
5 Contributed by Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com>
|
|
6 for General Processor Tech.
|
|
7
|
|
8 This file is part of GCC.
|
|
9
|
|
10 GCC is free software; you can redistribute it and/or modify it under
|
|
11 the terms of the GNU General Public License as published by the Free
|
|
12 Software Foundation; either version 3, or (at your option) any later
|
|
13 version.
|
|
14
|
|
15 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
16 WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
18 for more details.
|
|
19
|
|
20 You should have received a copy of the GNU General Public License
|
|
21 along with GCC; see the file COPYING3. If not see
|
|
22 <http://www.gnu.org/licenses/>. */
|
|
23
|
|
24 /* Following builtins are used by the BRIG (the binary representation of
|
|
25 HSAIL) frontend. Software implementations are available in libhsail-rt.
|
|
26 Use leading double underscore in the name to avoid name space clashes
|
|
27 with kernel program symbols in case the builtin is implemented as
|
|
28 a function call. */
|
|
29
|
|
30 /* Work-item ID related builtins are not constant in the work-group function
|
|
31 mode (each WI has a different return value). */
|
|
32
|
|
33 #ifndef DEF_HSAIL_BUILTIN
|
|
34 #define DEF_HSAIL_BUILTIN(ENUM, HSAIL_OPCODE, HSAIL_TYPE, \
|
|
35 NAME, TYPE, ATTRS)
|
|
36 #endif
|
|
37
|
|
38 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMABSID, BRIG_OPCODE_WORKITEMABSID,
|
|
39 BRIG_TYPE_U32, "__hsail_workitemabsid", BT_FN_UINT_UINT_PTR,
|
|
40 ATTR_NOTHROW_LEAF_LIST)
|
|
41
|
|
42 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GRIDSIZE, BRIG_OPCODE_GRIDSIZE,
|
|
43 BRIG_TYPE_U32, "__hsail_gridsize", BT_FN_UINT_UINT_PTR,
|
|
44 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
45
|
|
46 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATABSID_U32,
|
|
47 BRIG_OPCODE_WORKITEMFLATABSID, BRIG_TYPE_U32,
|
|
48 "__hsail_workitemflatabsid_u32", BT_FN_UINT_PTR,
|
|
49 ATTR_NOTHROW_LEAF_LIST)
|
|
50
|
|
51 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATABSID_U64,
|
|
52 BRIG_OPCODE_WORKITEMFLATABSID, BRIG_TYPE_U64,
|
|
53 "__hsail_workitemflatabsid_u64", BT_FN_ULONG_PTR,
|
|
54 ATTR_NOTHROW_LEAF_LIST)
|
|
55
|
|
56 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATID, BRIG_OPCODE_WORKITEMFLATID,
|
|
57 BRIG_TYPE_U32, "__hsail_workitemflatid", BT_FN_UINT_PTR,
|
|
58 ATTR_NOTHROW_LEAF_LIST)
|
|
59
|
|
60 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMID, BRIG_OPCODE_WORKITEMID,
|
|
61 BRIG_TYPE_U32, "__hsail_workitemid", BT_FN_UINT_UINT_PTR,
|
|
62 ATTR_NOTHROW_LEAF_LIST)
|
|
63
|
|
64 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPID, BRIG_OPCODE_WORKGROUPID,
|
|
65 BRIG_TYPE_U32, "__hsail_workgroupid", BT_FN_UINT_UINT_PTR,
|
|
66 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
67
|
|
68 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CURRENTWORKITEMFLATID,
|
|
69 BRIG_OPCODE_CURRENTWORKITEMFLATID,
|
|
70 BRIG_TYPE_U32, "__hsail_currentworkitemflatid",
|
|
71 BT_FN_UINT_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
72
|
|
73 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMABSID_U64, BRIG_OPCODE_WORKITEMABSID,
|
|
74 BRIG_TYPE_U64, "__hsail_workitemabsid_u64",
|
|
75 BT_FN_ULONG_UINT_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
76
|
|
77 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETID, BRIG_OPCODE_PACKETID,
|
|
78 BRIG_TYPE_U64, "__hsail_packetid", BT_FN_ULONG_PTR,
|
|
79 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
80
|
|
81 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETCOMPLETIONSIG_SIG64,
|
|
82 BRIG_OPCODE_PACKETCOMPLETIONSIG, BRIG_TYPE_SIG64,
|
|
83 "__hsail_packetcompletionsig_sig64", BT_FN_ULONG_PTR,
|
|
84 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
85
|
|
86 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETCOMPLETIONSIG_SIG32,
|
|
87 BRIG_OPCODE_PACKETCOMPLETIONSIG, BRIG_TYPE_SIG32,
|
|
88 "__hsail_packetcompletionsig_sig32", BT_FN_UINT_PTR,
|
|
89 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
90
|
|
91 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CURRENTWORKGROUPSIZE,
|
|
92 BRIG_OPCODE_CURRENTWORKGROUPSIZE, BRIG_TYPE_U32,
|
|
93 "__hsail_currentworkgroupsize", BT_FN_UINT_UINT_PTR,
|
|
94 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
95
|
|
96 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPSIZE, BRIG_OPCODE_WORKGROUPSIZE,
|
|
97 BRIG_TYPE_U32, "__hsail_workgroupsize", BT_FN_UINT_UINT_PTR,
|
|
98 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
99
|
|
100 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_DIM, BRIG_OPCODE_DIM,
|
|
101 BRIG_TYPE_U32, "__hsail_dim", BT_FN_UINT_PTR,
|
|
102 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
103
|
|
104 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GRIDGROUPS, BRIG_OPCODE_GRIDGROUPS,
|
|
105 BRIG_TYPE_U32, "__hsail_gridgroups", BT_FN_UINT_UINT_PTR,
|
|
106 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
107
|
|
108 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_S32, BRIG_OPCODE_BITEXTRACT,
|
|
109 BRIG_TYPE_S32, "__hsail_bitextract_s32",
|
|
110 BT_FN_INT_INT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
111
|
|
112 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U32, BRIG_OPCODE_BITEXTRACT,
|
|
113 BRIG_TYPE_U32, "__hsail_bitextract_u32",
|
|
114 BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
115
|
|
116 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_S64, BRIG_OPCODE_BITEXTRACT,
|
|
117 BRIG_TYPE_S64, "__hsail_bitextract_s64",
|
|
118 BT_FN_LONG_LONG_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
119
|
|
120 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U64, BRIG_OPCODE_BITEXTRACT,
|
|
121 BRIG_TYPE_U64, "__hsail_bitextract_u64",
|
|
122 BT_FN_ULONG_ULONG_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
123
|
|
124 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U32, BRIG_OPCODE_BITINSERT,
|
|
125 BRIG_TYPE_U32, "__hsail_bitinsert_u32",
|
|
126 BT_FN_UINT_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
127
|
|
128 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U64, BRIG_OPCODE_BITINSERT,
|
|
129 BRIG_TYPE_U64, "__hsail_bitinsert_u64",
|
|
130 BT_FN_ULONG_ULONG_ULONG_UINT_UINT,
|
|
131 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
132
|
|
133 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B32, BRIG_OPCODE_BITMASK,
|
|
134 BRIG_TYPE_B32, "__hsail_bitmask_u32", BT_FN_UINT_UINT_UINT,
|
|
135 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
136
|
|
137 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B64, BRIG_OPCODE_BITMASK,
|
|
138 BRIG_TYPE_B64, "__hsail_bitmask_u64", BT_FN_ULONG_UINT_UINT,
|
|
139 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
140
|
|
141 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B32, BRIG_OPCODE_BITREV,
|
|
142 BRIG_TYPE_B32, "__hsail_bitrev_u32", BT_FN_UINT_UINT,
|
|
143 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
144
|
|
145 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B64, BRIG_OPCODE_BITREV,
|
|
146 BRIG_TYPE_B64, "__hsail_bitrev_u64", BT_FN_ULONG_ULONG,
|
|
147 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
148
|
|
149 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_B32, BRIG_OPCODE_BITSELECT,
|
|
150 BRIG_TYPE_B32, "__hsail_bitselect_u32",
|
|
151 BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
152
|
|
153 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_U64, BRIG_OPCODE_BITSELECT,
|
|
154 BRIG_TYPE_B64, "__hsail_bitselect_u64",
|
|
155 BT_FN_ULONG_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
156
|
|
157 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U32, BRIG_OPCODE_FIRSTBIT,
|
|
158 BRIG_TYPE_U32, "__hsail_firstbit_u32", BT_FN_UINT_UINT,
|
|
159 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
160
|
|
161 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S32, BRIG_OPCODE_FIRSTBIT,
|
|
162 BRIG_TYPE_S32, "__hsail_firstbit_s32", BT_FN_UINT_INT,
|
|
163 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
164
|
|
165 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U64, BRIG_OPCODE_FIRSTBIT,
|
|
166 BRIG_TYPE_U64, "__hsail_firstbit_u64", BT_FN_UINT_ULONG,
|
|
167 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
168
|
|
169 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S64, BRIG_OPCODE_FIRSTBIT,
|
|
170 BRIG_TYPE_S64, "__hsail_firstbit_s64", BT_FN_UINT_LONG,
|
|
171 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
172
|
|
173 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U32, BRIG_OPCODE_LASTBIT,
|
|
174 BRIG_TYPE_U32, "__hsail_lastbit_u32", BT_FN_UINT_UINT,
|
|
175 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
176
|
|
177 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U64, BRIG_OPCODE_LASTBIT,
|
|
178 BRIG_TYPE_U64, "__hsail_lastbit_u64", BT_FN_UINT_ULONG,
|
|
179 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
180
|
|
181 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U32, BRIG_OPCODE_BORROW,
|
|
182 BRIG_TYPE_U32, "__hsail_borrow_u32", BT_FN_UINT_UINT_UINT,
|
|
183 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
184
|
|
185 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U64, BRIG_OPCODE_BORROW,
|
|
186 BRIG_TYPE_U64, "__hsail_borrow_u64", BT_FN_ULONG_ULONG_ULONG,
|
|
187 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
188
|
|
189 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U32, BRIG_OPCODE_CARRY,
|
|
190 BRIG_TYPE_U32, "__hsail_carry_u32", BT_FN_UINT_UINT_UINT,
|
|
191 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
192
|
|
193 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U64, BRIG_OPCODE_CARRY,
|
|
194 BRIG_TYPE_U64, "__hsail_carry_u64", BT_FN_ULONG_ULONG_ULONG,
|
|
195 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
196
|
|
197 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S32, BRIG_OPCODE_REM,
|
|
198 BRIG_TYPE_S32, "__hsail_rem_s32", BT_FN_INT_INT_INT,
|
|
199 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
200
|
|
201 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S64, BRIG_OPCODE_REM,
|
|
202 BRIG_TYPE_S64, "__hsail_rem_s64", BT_FN_LONG_LONG_LONG,
|
|
203 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
204
|
|
205 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F32, BRIG_OPCODE_MIN,
|
|
206 BRIG_TYPE_F32, "__hsail_min_f32", BT_FN_FLOAT_FLOAT_FLOAT,
|
|
207 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
208
|
|
209 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F32, BRIG_OPCODE_MAX,
|
|
210 BRIG_TYPE_F32, "__hsail_max_f32", BT_FN_FLOAT_FLOAT_FLOAT,
|
|
211 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
212
|
|
213 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F64, BRIG_OPCODE_MIN,
|
|
214 BRIG_TYPE_F64, "__hsail_min_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
|
|
215 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
216
|
|
217 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F64, BRIG_OPCODE_MAX,
|
|
218 BRIG_TYPE_F64, "__hsail_max_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
|
|
219 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
220
|
|
221 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32, BRIG_OPCODE_CLASS,
|
|
222 BRIG_TYPE_F32, "__hsail_class_f32", BT_FN_UINT_FLOAT_UINT,
|
|
223 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
224
|
|
225 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F64, BRIG_OPCODE_CLASS,
|
|
226 BRIG_TYPE_F64, "__hsail_class_f64", BT_FN_UINT_DOUBLE_UINT,
|
|
227 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
228
|
|
229 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32_F16, BRIG_OPCODE_CLASS,
|
|
230 BRIG_TYPE_F16, "__hsail_class_f32_f16",
|
|
231 BT_FN_UINT_FLOAT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
232
|
|
233 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F32, BRIG_OPCODE_FRACT,
|
|
234 BRIG_TYPE_F32, "__hsail_fract_f32", BT_FN_FLOAT_FLOAT,
|
|
235 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
236
|
|
237 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F64, BRIG_OPCODE_FRACT,
|
|
238 BRIG_TYPE_F64, "__hsail_fract_f64", BT_FN_DOUBLE_DOUBLE,
|
|
239 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
240
|
|
241 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BARRIER, BRIG_OPCODE_BARRIER,
|
|
242 BRIG_TYPE_NONE, "__hsail_barrier", BT_FN_VOID_PTR,
|
|
243 ATTR_RT_NOTHROW_LEAF_LIST)
|
|
244
|
|
245 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_INITFBAR, BRIG_OPCODE_INITFBAR,
|
|
246 BRIG_TYPE_NONE, "__hsail_initfbar", BT_FN_VOID_UINT_PTR,
|
|
247 ATTR_NOTHROW_LEAF_LIST)
|
|
248
|
|
249 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_JOINFBAR, BRIG_OPCODE_JOINFBAR,
|
|
250 BRIG_TYPE_NONE, "__hsail_joinfbar", BT_FN_VOID_UINT_PTR,
|
|
251 ATTR_NOTHROW_LIST)
|
|
252
|
|
253 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WAITFBAR, BRIG_OPCODE_WAITFBAR,
|
|
254 BRIG_TYPE_NONE, "__hsail_waitfbar", BT_FN_VOID_UINT_PTR,
|
|
255 ATTR_RT_NOTHROW_LEAF_LIST)
|
|
256
|
|
257 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ARRIVEFBAR, BRIG_OPCODE_ARRIVEFBAR,
|
|
258 BRIG_TYPE_NONE, "__hsail_arrivefbar", BT_FN_VOID_UINT_PTR,
|
|
259 ATTR_RT_NOTHROW_LEAF_LIST)
|
|
260
|
|
261 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LEAVEFBAR, BRIG_OPCODE_LEAVEFBAR,
|
|
262 BRIG_TYPE_NONE, "__hsail_leavefbar", BT_FN_VOID_UINT_PTR,
|
|
263 ATTR_NOTHROW_LIST)
|
|
264
|
|
265 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_RELEASEFBAR, BRIG_OPCODE_RELEASEFBAR,
|
|
266 BRIG_TYPE_NONE, "__hsail_releasefbar", BT_FN_VOID_UINT_PTR,
|
|
267 ATTR_NOTHROW_LIST)
|
|
268
|
|
269 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITALIGN, BRIG_OPCODE_BITALIGN,
|
|
270 BRIG_TYPE_B32, "__hsail_bitalign",
|
|
271 BT_FN_UINT_ULONG_ULONG_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
272
|
|
273 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BYTEALIGN, BRIG_OPCODE_BYTEALIGN,
|
|
274 BRIG_TYPE_B32, "__hsail_bytealign",
|
|
275 BT_FN_UINT_ULONG_ULONG_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
276
|
|
277 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LERP, BRIG_OPCODE_LERP,
|
|
278 BRIG_TYPE_U8X4, "__hsail_lerp", BT_FN_UINT_UINT_UINT_UINT,
|
|
279 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
280
|
|
281 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKCVT, BRIG_OPCODE_PACKCVT,
|
|
282 BRIG_TYPE_U8X4, "__hsail_packcvt",
|
|
283 BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT,
|
|
284 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
285
|
|
286 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_UNPACKCVT, BRIG_OPCODE_UNPACKCVT,
|
|
287 BRIG_TYPE_F32, "__hsail_unpackcvt", BT_FN_FLOAT_UINT_UINT,
|
|
288 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
289
|
|
290 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U16X2, BRIG_OPCODE_SAD,
|
|
291 BRIG_TYPE_U16X2, "__hsail_sad_u16x2",
|
|
292 BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
293
|
|
294 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U32, BRIG_OPCODE_SAD,
|
|
295 BRIG_TYPE_U32, "__hsail_sad_u32", BT_FN_UINT_UINT_UINT_UINT,
|
|
296 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
297
|
|
298 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U8X4, BRIG_OPCODE_SAD,
|
|
299 BRIG_TYPE_U8X4, "__hsail_sad_u8x4",
|
|
300 BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
301
|
|
302 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SADHI_U8X4, BRIG_OPCODE_SADHI,
|
|
303 BRIG_TYPE_U16X2, "__hsail_sadhi_u16x2_u8x4",
|
|
304 BT_FN_UINT_UINT_UINT_UINT,
|
|
305 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
306
|
|
307 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLOCK, BRIG_OPCODE_CLOCK,
|
|
308 BRIG_TYPE_U64, "__hsail_clock", BT_FN_ULONG,
|
|
309 ATTR_NOTHROW_LEAF_LIST)
|
|
310
|
|
311 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CUID, BRIG_OPCODE_CUID,
|
|
312 BRIG_TYPE_U32, "__hsail_cuid", BT_FN_UINT_PTR,
|
|
313 ATTR_NOTHROW_LEAF_LIST)
|
|
314
|
|
315 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAXCUID, BRIG_OPCODE_MAXCUID,
|
|
316 BRIG_TYPE_U32, "__hsail_maxcuid", BT_FN_UINT_PTR,
|
|
317 ATTR_NOTHROW_LEAF_LIST)
|
|
318
|
|
319 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_DEBUGTRAP, BRIG_OPCODE_DEBUGTRAP,
|
|
320 BRIG_TYPE_U32, "__hsail_debugtrap", BT_FN_VOID_UINT_PTR,
|
|
321 ATTR_NORETURN_NOTHROW_LIST)
|
|
322
|
|
323 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GROUPBASEPTR, BRIG_OPCODE_GROUPBASEPTR,
|
|
324 BRIG_TYPE_U32, "__hsail_groupbaseptr", BT_FN_UINT_PTR,
|
|
325 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
326
|
|
327 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_KERNARGBASEPTR_U64,
|
|
328 BRIG_OPCODE_KERNARGBASEPTR, BRIG_TYPE_U64,
|
|
329 "__hsail_kernargbaseptr_u64", BT_FN_ULONG_PTR,
|
|
330 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
331
|
|
332 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_KERNARGBASEPTR_U32,
|
|
333 BRIG_OPCODE_KERNARGBASEPTR, BRIG_TYPE_U32,
|
|
334 "__hsail_kernargbaseptr_u32", BT_FN_UINT_PTR,
|
|
335 ATTR_PURE_NOTHROW_LEAF_LIST)
|
|
336
|
|
337 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ALLOCA, BRIG_OPCODE_ALLOCA,
|
|
338 BRIG_TYPE_U32, "__hsail_alloca", BT_FN_UINT_UINT_UINT_PTR,
|
|
339 ATTR_NOTHROW_LEAF_LIST)
|
|
340
|
|
341 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LDQUEUEWRITEINDEX,
|
|
342 BRIG_OPCODE_LDQUEUEWRITEINDEX,
|
|
343 BRIG_TYPE_U64, "__hsail_ldqueuewriteindex",
|
|
344 BT_FN_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
345
|
|
346 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LDQUEUEREADINDEX,
|
|
347 BRIG_OPCODE_LDQUEUEREADINDEX,
|
|
348 BRIG_TYPE_U64, "__hsail_ldqueuereadindex",
|
|
349 BT_FN_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
350
|
|
351 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_STQUEUEWRITEINDEX,
|
|
352 BRIG_OPCODE_STQUEUEWRITEINDEX,
|
|
353 BRIG_TYPE_U64, "__hsail_stqueuewriteindex",
|
|
354 BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST)
|
|
355
|
|
356 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_STQUEUEREADINDEX,
|
|
357 BRIG_OPCODE_STQUEUEREADINDEX,
|
|
358 BRIG_TYPE_U64, "__hsail_stqueuereadindex",
|
|
359 BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST)
|
|
360
|
|
361 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ADDQUEUEWRITEINDEX,
|
|
362 BRIG_OPCODE_ADDQUEUEWRITEINDEX,
|
|
363 BRIG_TYPE_U64, "__hsail_addqueuewriteindex",
|
|
364 BT_FN_ULONG_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
365
|
|
366 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CASQUEUEWRITEINDEX,
|
|
367 BRIG_OPCODE_CASQUEUEWRITEINDEX,
|
|
368 BRIG_TYPE_U64, "__hsail_casqueuewriteindex",
|
|
369 BT_FN_ULONG_ULONG_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
370
|
|
371 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_GLOBAL,
|
|
372 BRIG_OPCODE_SEGMENTP,
|
|
373 BRIG_TYPE_U32, "__hsail_segmentp_global",
|
|
374 BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
375
|
|
376 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_GROUP,
|
|
377 BRIG_OPCODE_SEGMENTP,
|
|
378 BRIG_TYPE_U32, "__hsail_segmentp_group",
|
|
379 BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
380
|
|
381 DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_PRIVATE,
|
|
382 BRIG_OPCODE_SEGMENTP,
|
|
383 BRIG_TYPE_U32, "__hsail_segmentp_private",
|
|
384 BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
385
|
|
386 #ifndef DEF_HSAIL_ATOMIC_BUILTIN
|
|
387 #define DEF_HSAIL_ATOMIC_BUILTIN(ENUM, ATOMIC_OPCODE, HSAIL_TYPE, \
|
|
388 NAME, TYPE, ATTRS)
|
|
389 #endif
|
|
390
|
|
391 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_S32, BRIG_ATOMIC_MIN,
|
|
392 BRIG_TYPE_S32, "__hsail_atomic_min_s32",
|
|
393 BT_FN_INT_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
|
|
394
|
|
395 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_S64, BRIG_ATOMIC_MIN,
|
|
396 BRIG_TYPE_S64, "__hsail_atomic_min_s64",
|
|
397 BT_FN_LONG_PTR_LONG, ATTR_NOTHROW_LEAF_LIST)
|
|
398
|
|
399 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_U32, BRIG_ATOMIC_MIN,
|
|
400 BRIG_TYPE_U32, "__hsail_atomic_min_u32",
|
|
401 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)
|
|
402
|
|
403 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_U64, BRIG_ATOMIC_MIN,
|
|
404 BRIG_TYPE_U64, "__hsail_atomic_min_u64",
|
|
405 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
406
|
|
407 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_S32, BRIG_ATOMIC_MAX,
|
|
408 BRIG_TYPE_S32, "__hsail_atomic_max_s32",
|
|
409 BT_FN_INT_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
|
|
410
|
|
411 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_S64, BRIG_ATOMIC_MAX,
|
|
412 BRIG_TYPE_S64, "__hsail_atomic_max_s64",
|
|
413 BT_FN_LONG_PTR_LONG, ATTR_NOTHROW_LEAF_LIST)
|
|
414
|
|
415 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_U32, BRIG_ATOMIC_MAX,
|
|
416 BRIG_TYPE_U32, "__hsail_atomic_max_u32",
|
|
417 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)
|
|
418
|
|
419 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_U64, BRIG_ATOMIC_MAX,
|
|
420 BRIG_TYPE_U64, "__hsail_atomic_max_u64",
|
|
421 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
422
|
|
423 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPDEC_U32,
|
|
424 BRIG_ATOMIC_WRAPDEC, BRIG_TYPE_U32,
|
|
425 "__hsail_atomic_wrapdec_u32",
|
|
426 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)
|
|
427
|
|
428 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPDEC_U64,
|
|
429 BRIG_ATOMIC_WRAPDEC, BRIG_TYPE_U64,
|
|
430 "__hsail_atomic_wrapdec_u64",
|
|
431 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
432
|
|
433 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPINC_U32,
|
|
434 BRIG_ATOMIC_WRAPINC, BRIG_TYPE_U32,
|
|
435 "__hsail_atomic_wrapinc_u32",
|
|
436 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)
|
|
437
|
|
438 DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPINC_U64,
|
|
439 BRIG_ATOMIC_WRAPINC, BRIG_TYPE_U64,
|
|
440 "__hsail_atomic_wrapinc_u64",
|
|
441 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)
|
|
442
|
|
443 #ifndef DEF_HSAIL_SAT_BUILTIN
|
|
444 #define DEF_HSAIL_SAT_BUILTIN(ENUM, HSAIL_OPCODE, HSAIL_TYPE, \
|
|
445 NAME, TYPE, ATTRS)
|
|
446 #endif
|
|
447
|
|
448 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U64, BRIG_OPCODE_ADD,
|
|
449 BRIG_TYPE_U64, "__hsail_sat_add_u64",
|
|
450 BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
451
|
|
452 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S64, BRIG_OPCODE_ADD,
|
|
453 BRIG_TYPE_S64, "__hsail_sat_add_s64",
|
|
454 BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
455
|
|
456 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U32, BRIG_OPCODE_ADD,
|
|
457 BRIG_TYPE_U32, "__hsail_sat_add_u32",
|
|
458 BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
459
|
|
460 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S32, BRIG_OPCODE_ADD,
|
|
461 BRIG_TYPE_S32, "__hsail_sat_add_s32",
|
|
462 BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
463
|
|
464 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U16, BRIG_OPCODE_ADD,
|
|
465 BRIG_TYPE_U16, "__hsail_sat_add_u16",
|
|
466 BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
467
|
|
468 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S16, BRIG_OPCODE_ADD,
|
|
469 BRIG_TYPE_S16, "__hsail_sat_add_s16",
|
|
470 BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
471
|
|
472 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U8, BRIG_OPCODE_ADD,
|
|
473 BRIG_TYPE_U8, "__hsail_sat_add_u8",
|
|
474 BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
475
|
|
476 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S8, BRIG_OPCODE_ADD,
|
|
477 BRIG_TYPE_S8, "__hsail_sat_add_s8",
|
|
478 BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
479
|
|
480 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U64, BRIG_OPCODE_SUB,
|
|
481 BRIG_TYPE_U64, "__hsail_sat_sub_u64",
|
|
482 BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
483
|
|
484 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S64, BRIG_OPCODE_SUB,
|
|
485 BRIG_TYPE_S64, "__hsail_sat_sub_s64",
|
|
486 BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
487
|
|
488 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U32, BRIG_OPCODE_SUB,
|
|
489 BRIG_TYPE_U32, "__hsail_sat_sub_u32",
|
|
490 BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
491
|
|
492 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S32, BRIG_OPCODE_SUB,
|
|
493 BRIG_TYPE_S32, "__hsail_sat_sub_s32",
|
|
494 BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
495
|
|
496 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U16, BRIG_OPCODE_SUB,
|
|
497 BRIG_TYPE_U16, "__hsail_sat_sub_u16",
|
|
498 BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
499
|
|
500 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S16, BRIG_OPCODE_SUB,
|
|
501 BRIG_TYPE_S16, "__hsail_sat_sub_s16",
|
|
502 BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
503
|
|
504 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U8, BRIG_OPCODE_SUB,
|
|
505 BRIG_TYPE_U8, "__hsail_sat_sub_u8",
|
|
506 BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
507
|
|
508 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S8, BRIG_OPCODE_SUB,
|
|
509 BRIG_TYPE_S8, "__hsail_sat_sub_s8",
|
|
510 BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
511
|
|
512 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U64, BRIG_OPCODE_MUL,
|
|
513 BRIG_TYPE_U64, "__hsail_sat_mul_u64",
|
|
514 BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
515
|
|
516 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S64, BRIG_OPCODE_MUL,
|
|
517 BRIG_TYPE_S64, "__hsail_sat_mul_s64",
|
|
518 BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
519
|
|
520 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U32, BRIG_OPCODE_MUL,
|
|
521 BRIG_TYPE_U32, "__hsail_sat_mul_u32",
|
|
522 BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
523
|
|
524 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S32, BRIG_OPCODE_MUL,
|
|
525 BRIG_TYPE_S32, "__hsail_sat_mul_s32",
|
|
526 BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
527
|
|
528 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U16, BRIG_OPCODE_MUL,
|
|
529 BRIG_TYPE_U16, "__hsail_sat_mul_u16",
|
|
530 BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
531
|
|
532 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S16, BRIG_OPCODE_MUL,
|
|
533 BRIG_TYPE_S16, "__hsail_sat_mul_s16",
|
|
534 BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
535
|
|
536 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U8, BRIG_OPCODE_MUL,
|
|
537 BRIG_TYPE_U8, "__hsail_sat_mul_u8",
|
|
538 BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
539
|
|
540 DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S8, BRIG_OPCODE_MUL,
|
|
541 BRIG_TYPE_S8, "__hsail_sat_mul_s8",
|
|
542 BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
543
|
|
544 #ifndef DEF_HSAIL_INTR_BUILTIN
|
|
545 #define DEF_HSAIL_INTR_BUILTIN(ENUM, NAME, TYPE, ATTRS)
|
|
546 #endif
|
|
547
|
|
548 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F32_F16, "__hsail_ftz_f32_f16",
|
|
549 BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
550
|
|
551 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F32, "__hsail_ftz_f32",
|
|
552 BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
553
|
|
554 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F64, "__hsail_ftz_f64",
|
|
555 BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
556
|
|
557 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_PUSH_FRAME, "__hsail_alloca_push_frame",
|
|
558 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
559
|
|
560 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_POP_FRAME, "__hsail_alloca_pop_frame",
|
|
561 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
562
|
|
563 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_SETWORKITEMID, "__hsail_setworkitemid",
|
|
564 BT_FN_VOID_UINT32_UINT32_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
565
|
|
566 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_LAUNCH_WG_FUNC,
|
|
567 "__hsail_launch_wg_function",
|
|
568 BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
569
|
|
570 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_LAUNCH_KERNEL,
|
|
571 "__hsail_launch_kernel",
|
|
572 BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)
|
|
573
|
|
574 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_F32_TO_F16, "__hsail_f32_to_f16",
|
|
575 BT_FN_UINT16_UINT32, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
576
|
|
577 DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_F16_TO_F32, "__hsail_f16_to_f32",
|
|
578 BT_FN_UINT32_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
579
|
|
580 #ifndef DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN
|
|
581 #define DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN(ENUM, HSAIL_DEST_TYPE, HSAIL_SRC_TYPE, \
|
|
582 NAME, TYPE, ATTRS)
|
|
583 #endif
|
|
584
|
|
585 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U8_F32,
|
|
586 BRIG_TYPE_U8, BRIG_TYPE_F32,
|
|
587 "__hsail_cvt_zeroi_sat_u8_f32",
|
|
588 BT_FN_UINT8_FLOAT,
|
|
589 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
590
|
|
591 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S8_F32,
|
|
592 BRIG_TYPE_S8, BRIG_TYPE_F32,
|
|
593 "__hsail_cvt_zeroi_sat_s8_f32",
|
|
594 BT_FN_INT8_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
595
|
|
596 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U16_F32,
|
|
597 BRIG_TYPE_U16, BRIG_TYPE_F32,
|
|
598 "__hsail_cvt_zeroi_sat_u16_f32",
|
|
599 BT_FN_UINT16_FLOAT,
|
|
600 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
601
|
|
602 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S16_F32,
|
|
603 BRIG_TYPE_S16, BRIG_TYPE_F32,
|
|
604 "__hsail_cvt_zeroi_sat_s16_f32",
|
|
605 BT_FN_INT16_FLOAT,
|
|
606 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
607
|
|
608 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U32_F32,
|
|
609 BRIG_TYPE_U32, BRIG_TYPE_F32,
|
|
610 "__hsail_cvt_zeroi_sat_u32_f32",
|
|
611 BT_FN_UINT32_FLOAT,
|
|
612 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
613
|
|
614 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S32_F32,
|
|
615 BRIG_TYPE_S32, BRIG_TYPE_F32,
|
|
616 "__hsail_cvt_zeroi_sat_s32_f32",
|
|
617 BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
618
|
|
619 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U64_F32,
|
|
620 BRIG_TYPE_U64, BRIG_TYPE_F32,
|
|
621 "__hsail_cvt_zeroi_sat_u64_f32",
|
|
622 BT_FN_UINT64_FLOAT,
|
|
623 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
624
|
|
625 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S64_F32,
|
|
626 BRIG_TYPE_S64, BRIG_TYPE_F32,
|
|
627 "__hsail_cvt_zeroi_sat_s64_f32",
|
|
628 BT_FN_LONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
629
|
|
630 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U8_F64,
|
|
631 BRIG_TYPE_U8, BRIG_TYPE_F64,
|
|
632 "__hsail_cvt_zeroi_sat_u8_f64",
|
|
633 BT_FN_UINT8_FLOAT,
|
|
634 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
635
|
|
636 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S8_F64,
|
|
637 BRIG_TYPE_S8, BRIG_TYPE_F64,
|
|
638 "__hsail_cvt_zeroi_sat_s8_f64",
|
|
639 BT_FN_INT8_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
640
|
|
641 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U16_F64,
|
|
642 BRIG_TYPE_U16, BRIG_TYPE_F64,
|
|
643 "__hsail_cvt_zeroi_sat_u16_f64",
|
|
644 BT_FN_UINT16_FLOAT,
|
|
645 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
646
|
|
647 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S16_F64,
|
|
648 BRIG_TYPE_S16, BRIG_TYPE_F64,
|
|
649 "__hsail_cvt_zeroi_sat_s16_f64",
|
|
650 BT_FN_INT16_FLOAT,
|
|
651 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
652
|
|
653 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U32_F64,
|
|
654 BRIG_TYPE_U32, BRIG_TYPE_F64,
|
|
655 "__hsail_cvt_zeroi_sat_u32_f64",
|
|
656 BT_FN_UINT32_FLOAT,
|
|
657 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
658
|
|
659 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S32_F64,
|
|
660 BRIG_TYPE_S32, BRIG_TYPE_F64,
|
|
661 "__hsail_cvt_zeroi_sat_s32_f64",
|
|
662 BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
663
|
|
664 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U64_F64,
|
|
665 BRIG_TYPE_U64, BRIG_TYPE_F64,
|
|
666 "__hsail_cvt_zeroi_sat_u64_f64",
|
|
667 BT_FN_UINT64_FLOAT,
|
|
668 ATTR_CONST_NOTHROW_LEAF_LIST)
|
|
669
|
|
670 DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S64_F64,
|
|
671 BRIG_TYPE_S64, BRIG_TYPE_F64,
|
|
672 "__hsail_cvt_zeroi_sat_s64_f64",
|
|
673 BT_FN_LONG_FLOAT,
|
|
674 ATTR_CONST_NOTHROW_LEAF_LIST)
|