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 (, 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 (, 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 (, 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 (, 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) |
675 | |