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