Import GCC-8 to a new vendor branch
[dragonfly.git] / contrib / gcc-8.0 / gcc / brig-builtins.def
1 /* This file contains the definitions and documentation for the
2    HSAIL builtins used in the GNU compiler.
3    Copyright (C) 2016-2018 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)