brig-builtins.def 26.2 KB
Newer Older
Pekka Jääskeläinen committed
1 2
/* This file contains the definitions and documentation for the
   HSAIL builtins used in the GNU compiler.
3
   Copyright (C) 2016-2019 Free Software Foundation, Inc.
Pekka Jääskeläinen committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

   Contributed by Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com>
   for General Processor Tech.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */

/* Following builtins are used by the BRIG (the binary representation of
   HSAIL) frontend.  Software implementations are available in libhsail-rt.
   Use leading double underscore in the name to avoid name space clashes
   with kernel program symbols in case the builtin is implemented as
   a function call.  */

/* Work-item ID related builtins are not constant in the work-group function
   mode (each WI has a different return value).  */

#ifndef DEF_HSAIL_BUILTIN
#define DEF_HSAIL_BUILTIN(ENUM, HSAIL_OPCODE, HSAIL_TYPE,	\
			  NAME, TYPE, ATTRS)
#endif

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMABSID, BRIG_OPCODE_WORKITEMABSID,
		  BRIG_TYPE_U32, "__hsail_workitemabsid", BT_FN_UINT_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GRIDSIZE, BRIG_OPCODE_GRIDSIZE,
		  BRIG_TYPE_U32, "__hsail_gridsize", BT_FN_UINT_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATABSID_U32,
		  BRIG_OPCODE_WORKITEMFLATABSID, BRIG_TYPE_U32,
48 49
		  "__hsail_workitemflatabsid_u32", BT_FN_UINT_CONST_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
50 51 52

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATABSID_U64,
		  BRIG_OPCODE_WORKITEMFLATABSID, BRIG_TYPE_U64,
53 54
		  "__hsail_workitemflatabsid_u64", BT_FN_ULONG_CONST_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
55 56

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATID, BRIG_OPCODE_WORKITEMFLATID,
57 58
		  BRIG_TYPE_U32, "__hsail_workitemflatid", BT_FN_UINT_CONST_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
59 60

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMID, BRIG_OPCODE_WORKITEMID,
61 62
		  BRIG_TYPE_U32, "__hsail_workitemid",
		  BT_FN_UINT_UINT_CONST_PTR, ATTR_PURE_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
63 64

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPID, BRIG_OPCODE_WORKGROUPID,
65 66
		  BRIG_TYPE_U32, "__hsail_workgroupid",
		  BT_FN_UINT_UINT_CONST_PTR, ATTR_PURE_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CURRENTWORKITEMFLATID,
		  BRIG_OPCODE_CURRENTWORKITEMFLATID,
		  BRIG_TYPE_U32, "__hsail_currentworkitemflatid",
		  BT_FN_UINT_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMABSID_U64, BRIG_OPCODE_WORKITEMABSID,
		  BRIG_TYPE_U64, "__hsail_workitemabsid_u64",
		  BT_FN_ULONG_UINT_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETID, BRIG_OPCODE_PACKETID,
		  BRIG_TYPE_U64, "__hsail_packetid", BT_FN_ULONG_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETCOMPLETIONSIG_SIG64,
		  BRIG_OPCODE_PACKETCOMPLETIONSIG, BRIG_TYPE_SIG64,
		  "__hsail_packetcompletionsig_sig64", BT_FN_ULONG_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKETCOMPLETIONSIG_SIG32,
		  BRIG_OPCODE_PACKETCOMPLETIONSIG, BRIG_TYPE_SIG32,
		  "__hsail_packetcompletionsig_sig32", BT_FN_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CURRENTWORKGROUPSIZE,
		  BRIG_OPCODE_CURRENTWORKGROUPSIZE, BRIG_TYPE_U32,
93
		  "__hsail_currentworkgroupsize", BT_FN_UINT_UINT_CONST_PTR,
Pekka Jääskeläinen committed
94 95 96
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPSIZE, BRIG_OPCODE_WORKGROUPSIZE,
97 98
		  BRIG_TYPE_U32, "__hsail_workgroupsize",
		  BT_FN_UINT_UINT_CONST_PTR,
Pekka Jääskeläinen committed
99 100 101 102 103 104 105 106 107 108 109 110
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_DIM, BRIG_OPCODE_DIM,
		  BRIG_TYPE_U32, "__hsail_dim", BT_FN_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GRIDGROUPS, BRIG_OPCODE_GRIDGROUPS,
		  BRIG_TYPE_U32, "__hsail_gridgroups", BT_FN_UINT_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_S32, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_S32, "__hsail_bitextract_s32",
111
		  BT_FN_INT_INT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
112 113 114

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U32, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_U32, "__hsail_bitextract_u32",
115
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
116 117 118

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_S64, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_S64, "__hsail_bitextract_s64",
119
		  BT_FN_LONG_LONG_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
120 121 122

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U64, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_U64, "__hsail_bitextract_u64",
123
		  BT_FN_ULONG_ULONG_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
124 125 126

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U32, BRIG_OPCODE_BITINSERT,
		  BRIG_TYPE_U32, "__hsail_bitinsert_u32",
127
		  BT_FN_UINT_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
128 129 130 131

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U64, BRIG_OPCODE_BITINSERT,
		  BRIG_TYPE_U64, "__hsail_bitinsert_u64",
		  BT_FN_ULONG_ULONG_ULONG_UINT_UINT,
132
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
133 134 135

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B32, BRIG_OPCODE_BITMASK,
		  BRIG_TYPE_B32, "__hsail_bitmask_u32", BT_FN_UINT_UINT_UINT,
136
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
137 138 139

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B64, BRIG_OPCODE_BITMASK,
		  BRIG_TYPE_B64, "__hsail_bitmask_u64", BT_FN_ULONG_UINT_UINT,
140
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
141 142 143

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B32, BRIG_OPCODE_BITREV,
		  BRIG_TYPE_B32, "__hsail_bitrev_u32", BT_FN_UINT_UINT,
144
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
145 146 147

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B64, BRIG_OPCODE_BITREV,
		  BRIG_TYPE_B64, "__hsail_bitrev_u64", BT_FN_ULONG_ULONG,
148
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
149 150 151

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_B32, BRIG_OPCODE_BITSELECT,
		  BRIG_TYPE_B32, "__hsail_bitselect_u32",
152
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
153 154 155

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_U64, BRIG_OPCODE_BITSELECT,
		  BRIG_TYPE_B64, "__hsail_bitselect_u64",
156
		  BT_FN_ULONG_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
157 158 159

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U32, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_U32, "__hsail_firstbit_u32", BT_FN_UINT_UINT,
160
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
161 162 163

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S32, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_S32, "__hsail_firstbit_s32", BT_FN_UINT_INT,
164
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
165 166 167

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U64, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_U64, "__hsail_firstbit_u64", BT_FN_UINT_ULONG,
168
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
169 170 171

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S64, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_S64, "__hsail_firstbit_s64", BT_FN_UINT_LONG,
172
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
173 174 175

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U32, BRIG_OPCODE_LASTBIT,
		  BRIG_TYPE_U32, "__hsail_lastbit_u32", BT_FN_UINT_UINT,
176
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
177 178 179

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U64, BRIG_OPCODE_LASTBIT,
		  BRIG_TYPE_U64, "__hsail_lastbit_u64", BT_FN_UINT_ULONG,
180
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
181 182 183

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U32, BRIG_OPCODE_BORROW,
		  BRIG_TYPE_U32, "__hsail_borrow_u32", BT_FN_UINT_UINT_UINT,
184
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
185 186 187

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U64, BRIG_OPCODE_BORROW,
		  BRIG_TYPE_U64, "__hsail_borrow_u64", BT_FN_ULONG_ULONG_ULONG,
188
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
189 190 191

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U32, BRIG_OPCODE_CARRY,
		  BRIG_TYPE_U32, "__hsail_carry_u32", BT_FN_UINT_UINT_UINT,
192
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
193 194 195

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U64, BRIG_OPCODE_CARRY,
		  BRIG_TYPE_U64, "__hsail_carry_u64", BT_FN_ULONG_ULONG_ULONG,
196
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
197 198 199

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S32, BRIG_OPCODE_REM,
		  BRIG_TYPE_S32, "__hsail_rem_s32", BT_FN_INT_INT_INT,
200
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
201 202 203

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S64, BRIG_OPCODE_REM,
		  BRIG_TYPE_S64, "__hsail_rem_s64", BT_FN_LONG_LONG_LONG,
204
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
205 206 207

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F32, BRIG_OPCODE_MIN,
		  BRIG_TYPE_F32, "__hsail_min_f32", BT_FN_FLOAT_FLOAT_FLOAT,
208
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
209 210 211

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F32, BRIG_OPCODE_MAX,
		  BRIG_TYPE_F32, "__hsail_max_f32", BT_FN_FLOAT_FLOAT_FLOAT,
212
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
213 214 215

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F64, BRIG_OPCODE_MIN,
		  BRIG_TYPE_F64, "__hsail_min_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
216
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
217 218 219

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F64, BRIG_OPCODE_MAX,
		  BRIG_TYPE_F64, "__hsail_max_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
220
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
221 222 223

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32, BRIG_OPCODE_CLASS,
		  BRIG_TYPE_F32, "__hsail_class_f32", BT_FN_UINT_FLOAT_UINT,
224
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
225

226 227
DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F64, BRIG_OPCODE_CLASS,
		  BRIG_TYPE_F64, "__hsail_class_f64", BT_FN_UINT_DOUBLE_UINT,
228
		  ATTR_CONST_NOTHROW_LEAF_LIST)
229

Pekka Jääskeläinen committed
230
DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32_F16, BRIG_OPCODE_CLASS,
231 232
		  BRIG_TYPE_F16, "__hsail_class_f32_f16",
		  BT_FN_UINT_FLOAT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
233 234 235

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F32, BRIG_OPCODE_FRACT,
		  BRIG_TYPE_F32, "__hsail_fract_f32", BT_FN_FLOAT_FLOAT,
236
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
237 238 239

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F64, BRIG_OPCODE_FRACT,
		  BRIG_TYPE_F64, "__hsail_fract_f64", BT_FN_DOUBLE_DOUBLE,
240
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
241 242 243

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BARRIER, BRIG_OPCODE_BARRIER,
		  BRIG_TYPE_NONE, "__hsail_barrier", BT_FN_VOID_PTR,
Pekka Jääskeläinen committed
244
		  ATTR_RT_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
245 246 247 248 249 250 251 252 253 254 255

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_INITFBAR, BRIG_OPCODE_INITFBAR,
		  BRIG_TYPE_NONE, "__hsail_initfbar", BT_FN_VOID_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_JOINFBAR, BRIG_OPCODE_JOINFBAR,
		  BRIG_TYPE_NONE, "__hsail_joinfbar", BT_FN_VOID_UINT_PTR,
		  ATTR_NOTHROW_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WAITFBAR, BRIG_OPCODE_WAITFBAR,
		  BRIG_TYPE_NONE, "__hsail_waitfbar", BT_FN_VOID_UINT_PTR,
Pekka Jääskeläinen committed
256
		  ATTR_RT_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
257 258 259

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ARRIVEFBAR, BRIG_OPCODE_ARRIVEFBAR,
		  BRIG_TYPE_NONE, "__hsail_arrivefbar", BT_FN_VOID_UINT_PTR,
Pekka Jääskeläinen committed
260
		  ATTR_RT_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
261 262 263 264 265 266 267 268 269 270 271

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LEAVEFBAR, BRIG_OPCODE_LEAVEFBAR,
		  BRIG_TYPE_NONE, "__hsail_leavefbar", BT_FN_VOID_UINT_PTR,
		  ATTR_NOTHROW_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_RELEASEFBAR, BRIG_OPCODE_RELEASEFBAR,
		  BRIG_TYPE_NONE, "__hsail_releasefbar", BT_FN_VOID_UINT_PTR,
		  ATTR_NOTHROW_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITALIGN, BRIG_OPCODE_BITALIGN,
		  BRIG_TYPE_B32, "__hsail_bitalign",
272
		  BT_FN_UINT_ULONG_ULONG_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
273 274 275

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BYTEALIGN, BRIG_OPCODE_BYTEALIGN,
		  BRIG_TYPE_B32, "__hsail_bytealign",
276
		  BT_FN_UINT_ULONG_ULONG_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
277 278 279

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LERP, BRIG_OPCODE_LERP,
		  BRIG_TYPE_U8X4, "__hsail_lerp", BT_FN_UINT_UINT_UINT_UINT,
280
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
281 282 283 284

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKCVT, BRIG_OPCODE_PACKCVT,
		  BRIG_TYPE_U8X4, "__hsail_packcvt",
		  BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT,
285
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
286 287 288

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_UNPACKCVT, BRIG_OPCODE_UNPACKCVT,
		  BRIG_TYPE_F32, "__hsail_unpackcvt", BT_FN_FLOAT_UINT_UINT,
289
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
290 291 292

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U16X2, BRIG_OPCODE_SAD,
		  BRIG_TYPE_U16X2, "__hsail_sad_u16x2",
293
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
294 295 296

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U32, BRIG_OPCODE_SAD,
		  BRIG_TYPE_U32, "__hsail_sad_u32", BT_FN_UINT_UINT_UINT_UINT,
297
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
298 299

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U8X4, BRIG_OPCODE_SAD,
300 301
		  BRIG_TYPE_U8X4, "__hsail_sad_u8x4",
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
302 303 304 305

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SADHI_U8X4, BRIG_OPCODE_SADHI,
		  BRIG_TYPE_U16X2, "__hsail_sadhi_u16x2_u8x4",
		  BT_FN_UINT_UINT_UINT_UINT,
306
		  ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLOCK, BRIG_OPCODE_CLOCK,
		  BRIG_TYPE_U64, "__hsail_clock", BT_FN_ULONG,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CUID, BRIG_OPCODE_CUID,
		  BRIG_TYPE_U32, "__hsail_cuid", BT_FN_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAXCUID, BRIG_OPCODE_MAXCUID,
		  BRIG_TYPE_U32, "__hsail_maxcuid", BT_FN_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_DEBUGTRAP, BRIG_OPCODE_DEBUGTRAP,
		  BRIG_TYPE_U32, "__hsail_debugtrap", BT_FN_VOID_UINT_PTR,
		  ATTR_NORETURN_NOTHROW_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_GROUPBASEPTR, BRIG_OPCODE_GROUPBASEPTR,
		  BRIG_TYPE_U32, "__hsail_groupbaseptr", BT_FN_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_KERNARGBASEPTR_U64,
		  BRIG_OPCODE_KERNARGBASEPTR, BRIG_TYPE_U64,
		  "__hsail_kernargbaseptr_u64", BT_FN_ULONG_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_KERNARGBASEPTR_U32,
		  BRIG_OPCODE_KERNARGBASEPTR, BRIG_TYPE_U32,
		  "__hsail_kernargbaseptr_u32", BT_FN_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ALLOCA, BRIG_OPCODE_ALLOCA,
		  BRIG_TYPE_U32, "__hsail_alloca", BT_FN_UINT_UINT_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LDQUEUEWRITEINDEX,
		  BRIG_OPCODE_LDQUEUEWRITEINDEX,
		  BRIG_TYPE_U64, "__hsail_ldqueuewriteindex",
		  BT_FN_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LDQUEUEREADINDEX,
		  BRIG_OPCODE_LDQUEUEREADINDEX,
		  BRIG_TYPE_U64, "__hsail_ldqueuereadindex",
		  BT_FN_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_STQUEUEWRITEINDEX,
		  BRIG_OPCODE_STQUEUEWRITEINDEX,
		  BRIG_TYPE_U64, "__hsail_stqueuewriteindex",
		  BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_STQUEUEREADINDEX,
		  BRIG_OPCODE_STQUEUEREADINDEX,
		  BRIG_TYPE_U64, "__hsail_stqueuereadindex",
		  BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ADDQUEUEWRITEINDEX,
		  BRIG_OPCODE_ADDQUEUEWRITEINDEX,
		  BRIG_TYPE_U64, "__hsail_addqueuewriteindex",
		  BT_FN_ULONG_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CASQUEUEWRITEINDEX,
		  BRIG_OPCODE_CASQUEUEWRITEINDEX,
		  BRIG_TYPE_U64, "__hsail_casqueuewriteindex",
		  BT_FN_ULONG_ULONG_ULONG_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_GLOBAL,
		  BRIG_OPCODE_SEGMENTP,
		  BRIG_TYPE_U32, "__hsail_segmentp_global",
		  BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_GROUP,
		  BRIG_OPCODE_SEGMENTP,
		  BRIG_TYPE_U32, "__hsail_segmentp_group",
		  BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SEGMENTP_PRIVATE,
		  BRIG_OPCODE_SEGMENTP,
		  BRIG_TYPE_U32, "__hsail_segmentp_private",
		  BT_FN_UINT32_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST)

#ifndef DEF_HSAIL_ATOMIC_BUILTIN
#define DEF_HSAIL_ATOMIC_BUILTIN(ENUM, ATOMIC_OPCODE, HSAIL_TYPE,	\
				 NAME, TYPE, ATTRS)
#endif

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_S32, BRIG_ATOMIC_MIN,
			 BRIG_TYPE_S32, "__hsail_atomic_min_s32",
			 BT_FN_INT_PTR_INT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_S64, BRIG_ATOMIC_MIN,
			 BRIG_TYPE_S64, "__hsail_atomic_min_s64",
			 BT_FN_LONG_PTR_LONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_U32, BRIG_ATOMIC_MIN,
			 BRIG_TYPE_U32, "__hsail_atomic_min_u32",
			 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MIN_U64, BRIG_ATOMIC_MIN,
			 BRIG_TYPE_U64, "__hsail_atomic_min_u64",
			 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_S32, BRIG_ATOMIC_MAX,
			 BRIG_TYPE_S32, "__hsail_atomic_max_s32",
			 BT_FN_INT_PTR_INT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_S64, BRIG_ATOMIC_MAX,
			 BRIG_TYPE_S64, "__hsail_atomic_max_s64",
			 BT_FN_LONG_PTR_LONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_U32, BRIG_ATOMIC_MAX,
			 BRIG_TYPE_U32, "__hsail_atomic_max_u32",
			 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_MAX_U64, BRIG_ATOMIC_MAX,
			 BRIG_TYPE_U64, "__hsail_atomic_max_u64",
			 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPDEC_U32,
			 BRIG_ATOMIC_WRAPDEC, BRIG_TYPE_U32,
			 "__hsail_atomic_wrapdec_u32",
			 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPDEC_U64,
			 BRIG_ATOMIC_WRAPDEC, BRIG_TYPE_U64,
			 "__hsail_atomic_wrapdec_u64",
			 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPINC_U32,
			 BRIG_ATOMIC_WRAPINC, BRIG_TYPE_U32,
			 "__hsail_atomic_wrapinc_u32",
			 BT_FN_UINT_PTR_UINT, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_ATOMIC_BUILTIN (BUILT_IN_HSAIL_ATOMIC_WRAPINC_U64,
			 BRIG_ATOMIC_WRAPINC, BRIG_TYPE_U64,
			 "__hsail_atomic_wrapinc_u64",
			 BT_FN_ULONG_PTR_ULONG, ATTR_NOTHROW_LEAF_LIST)

#ifndef DEF_HSAIL_SAT_BUILTIN
#define DEF_HSAIL_SAT_BUILTIN(ENUM, HSAIL_OPCODE, HSAIL_TYPE,	\
			      NAME, TYPE, ATTRS)
#endif

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U64, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U64, "__hsail_sat_add_u64",
451
		      BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
452 453 454

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S64, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S64, "__hsail_sat_add_s64",
455
		      BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
456 457 458

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U32, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U32, "__hsail_sat_add_u32",
459
		      BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
460 461 462

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S32, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S32, "__hsail_sat_add_s32",
463
		      BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
464 465 466

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U16, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U16, "__hsail_sat_add_u16",
467
		      BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
468 469 470

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S16, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S16, "__hsail_sat_add_s16",
471
		      BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
472 473 474

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U8, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U8, "__hsail_sat_add_u8",
475
		      BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
476 477 478

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S8, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S8, "__hsail_sat_add_s8",
479
		      BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
480 481 482

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U64, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U64, "__hsail_sat_sub_u64",
483
		      BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
484 485 486

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S64, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S64, "__hsail_sat_sub_s64",
487
		      BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
488 489 490

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U32, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U32, "__hsail_sat_sub_u32",
491
		      BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
492 493 494

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S32, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S32, "__hsail_sat_sub_s32",
495
		      BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
496 497 498

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U16, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U16, "__hsail_sat_sub_u16",
499
		      BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
500 501 502

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S16, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S16, "__hsail_sat_sub_s16",
503
		      BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
504 505 506

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U8, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U8, "__hsail_sat_sub_u8",
507
		      BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
508 509 510

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S8, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S8, "__hsail_sat_sub_s8",
511
		      BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
512 513 514

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U64, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U64, "__hsail_sat_mul_u64",
515
		      BT_FN_ULONG_ULONG_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
516 517 518

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S64, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S64, "__hsail_sat_mul_s64",
519
		      BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
520 521 522

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U32, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U32, "__hsail_sat_mul_u32",
523
		      BT_FN_UINT_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
524 525 526

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S32, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S32, "__hsail_sat_mul_s32",
527
		      BT_FN_INT_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
528 529 530

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U16, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U16, "__hsail_sat_mul_u16",
531
		      BT_FN_UINT16_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
532 533 534

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S16, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S16, "__hsail_sat_mul_s16",
535
		      BT_FN_INT16_INT16_INT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
536 537 538

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U8, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U8, "__hsail_sat_mul_u8",
539
		      BT_FN_UINT8_UINT8_UINT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
540 541 542

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S8, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S8, "__hsail_sat_mul_s8",
543
		      BT_FN_INT8_INT8_INT8, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
544 545 546 547 548 549

#ifndef DEF_HSAIL_INTR_BUILTIN
#define DEF_HSAIL_INTR_BUILTIN(ENUM, NAME, TYPE, ATTRS)
#endif

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F32_F16, "__hsail_ftz_f32_f16",
550
		       BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
551 552

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F32, "__hsail_ftz_f32",
553
		       BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
554 555

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F64, "__hsail_ftz_f64",
556
		       BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
557 558 559 560 561 562 563 564 565 566 567 568

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_PUSH_FRAME, "__hsail_alloca_push_frame",
		       BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_POP_FRAME, "__hsail_alloca_pop_frame",
		       BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_SETWORKITEMID, "__hsail_setworkitemid",
		       BT_FN_VOID_UINT32_UINT32_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_LAUNCH_WG_FUNC,
		       "__hsail_launch_wg_function",
569
		       BT_FN_VOID_PTR_PTR_UINT32, ATTR_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
570 571 572 573 574 575

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_LAUNCH_KERNEL,
		       "__hsail_launch_kernel",
		       BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_F32_TO_F16, "__hsail_f32_to_f16",
576
		       BT_FN_UINT16_UINT32, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
577 578

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_F16_TO_F32, "__hsail_f16_to_f32",
579
		       BT_FN_UINT32_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
580 581 582 583 584 585 586 587 588

#ifndef DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN
#define DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN(ENUM, HSAIL_DEST_TYPE, HSAIL_SRC_TYPE, \
	NAME, TYPE, ATTRS)
#endif

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U8_F32,
				BRIG_TYPE_U8, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_u8_f32",
589 590
				BT_FN_UINT8_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
591 592 593 594

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S8_F32,
				BRIG_TYPE_S8, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_s8_f32",
595
				BT_FN_INT8_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
596 597 598 599

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U16_F32,
				BRIG_TYPE_U16, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_u16_f32",
600 601
				BT_FN_UINT16_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
602 603 604 605

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S16_F32,
				BRIG_TYPE_S16, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_s16_f32",
606 607
				BT_FN_INT16_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
608 609 610 611

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U32_F32,
				BRIG_TYPE_U32, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_u32_f32",
612 613
				BT_FN_UINT32_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
614 615 616 617

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S32_F32,
				BRIG_TYPE_S32, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_s32_f32",
618
				BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
619 620 621 622

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U64_F32,
				BRIG_TYPE_U64, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_u64_f32",
623 624
				BT_FN_UINT64_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
625 626 627 628

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S64_F32,
				BRIG_TYPE_S64, BRIG_TYPE_F32,
		       		"__hsail_cvt_zeroi_sat_s64_f32",
629
				BT_FN_LONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
630 631 632 633

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U8_F64,
				BRIG_TYPE_U8, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_u8_f64",
634 635
				BT_FN_UINT8_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
636 637 638 639

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S8_F64,
				BRIG_TYPE_S8, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_s8_f64",
640
				BT_FN_INT8_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
641 642 643 644

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U16_F64,
				BRIG_TYPE_U16, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_u16_f64",
645 646
				BT_FN_UINT16_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
647 648 649 650

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S16_F64,
				BRIG_TYPE_S16, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_s16_f64",
651 652
				BT_FN_INT16_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
653 654 655 656

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U32_F64,
				BRIG_TYPE_U32, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_u32_f64",
657 658
				BT_FN_UINT32_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
659 660 661 662

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S32_F64,
				BRIG_TYPE_S32, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_s32_f64",
663
				BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
664 665 666 667

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_U64_F64,
				BRIG_TYPE_U64, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_u64_f64",
668 669
				BT_FN_UINT64_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)
Pekka Jääskeläinen committed
670 671 672 673

DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN (BUILT_IN_HSAIL_CVT_ZEROI_SAT_S64_F64,
				BRIG_TYPE_S64, BRIG_TYPE_F64,
		       		"__hsail_cvt_zeroi_sat_s64_f64",
674 675
				BT_FN_LONG_FLOAT,
				ATTR_CONST_NOTHROW_LEAF_LIST)