/* This file contains the definitions and documentation for the
   HSAIL builtins used in the GNU compiler.
   Copyright (C) 2016-2017 Free Software Foundation, Inc.

   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,
		  "__hsail_workitemflatabsid_u32", BT_FN_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATABSID_U64,
		  BRIG_OPCODE_WORKITEMFLATABSID, BRIG_TYPE_U64,
		  "__hsail_workitemflatabsid_u64", BT_FN_ULONG_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMFLATID, BRIG_OPCODE_WORKITEMFLATID,
		  BRIG_TYPE_U32, "__hsail_workitemflatid", BT_FN_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKITEMID, BRIG_OPCODE_WORKITEMID,
		  BRIG_TYPE_U32, "__hsail_workitemid", BT_FN_UINT_UINT_PTR,
		  ATTR_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPID, BRIG_OPCODE_WORKGROUPID,
		  BRIG_TYPE_U32, "__hsail_workgroupid", BT_FN_UINT_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

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,
		  "__hsail_currentworkgroupsize", BT_FN_UINT_UINT_PTR,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_WORKGROUPSIZE, BRIG_OPCODE_WORKGROUPSIZE,
		  BRIG_TYPE_U32, "__hsail_workgroupsize", BT_FN_UINT_UINT_PTR,
		  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",
		  BT_FN_INT_INT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U32, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_U32, "__hsail_bitextract_u32",
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_S64, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_S64, "__hsail_bitextract_s64",
		  BT_FN_LONG_LONG_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITEXTRACT_U64, BRIG_OPCODE_BITEXTRACT,
		  BRIG_TYPE_U64, "__hsail_bitextract_u64",
		  BT_FN_ULONG_ULONG_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U32, BRIG_OPCODE_BITINSERT,
		  BRIG_TYPE_U32, "__hsail_bitinsert_u32",
		  BT_FN_UINT_UINT_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITINSERT_U64, BRIG_OPCODE_BITINSERT,
		  BRIG_TYPE_U64, "__hsail_bitinsert_u64",
		  BT_FN_ULONG_ULONG_ULONG_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B32, BRIG_OPCODE_BITMASK,
		  BRIG_TYPE_B32, "__hsail_bitmask_u32", BT_FN_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITMASK_B64, BRIG_OPCODE_BITMASK,
		  BRIG_TYPE_B64, "__hsail_bitmask_u64", BT_FN_ULONG_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B32, BRIG_OPCODE_BITREV,
		  BRIG_TYPE_B32, "__hsail_bitrev_u32", BT_FN_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITREV_B64, BRIG_OPCODE_BITREV,
		  BRIG_TYPE_B64, "__hsail_bitrev_u64", BT_FN_ULONG_ULONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_B32, BRIG_OPCODE_BITSELECT,
		  BRIG_TYPE_B32, "__hsail_bitselect_u32",
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BITSELECT_U64, BRIG_OPCODE_BITSELECT,
		  BRIG_TYPE_B64, "__hsail_bitselect_u64",
		  BT_FN_ULONG_ULONG_ULONG_ULONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U32, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_U32, "__hsail_firstbit_u32", BT_FN_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S32, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_S32, "__hsail_firstbit_s32", BT_FN_UINT_INT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_U64, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_U64, "__hsail_firstbit_u64", BT_FN_UINT_ULONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FIRSTBIT_S64, BRIG_OPCODE_FIRSTBIT,
		  BRIG_TYPE_S64, "__hsail_firstbit_s64", BT_FN_UINT_LONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U32, BRIG_OPCODE_LASTBIT,
		  BRIG_TYPE_U32, "__hsail_lastbit_u32", BT_FN_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LASTBIT_U64, BRIG_OPCODE_LASTBIT,
		  BRIG_TYPE_U64, "__hsail_lastbit_u64", BT_FN_UINT_ULONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U32, BRIG_OPCODE_BORROW,
		  BRIG_TYPE_U32, "__hsail_borrow_u32", BT_FN_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BORROW_U64, BRIG_OPCODE_BORROW,
		  BRIG_TYPE_U64, "__hsail_borrow_u64", BT_FN_ULONG_ULONG_ULONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U32, BRIG_OPCODE_CARRY,
		  BRIG_TYPE_U32, "__hsail_carry_u32", BT_FN_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CARRY_U64, BRIG_OPCODE_CARRY,
		  BRIG_TYPE_U64, "__hsail_carry_u64", BT_FN_ULONG_ULONG_ULONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S32, BRIG_OPCODE_REM,
		  BRIG_TYPE_S32, "__hsail_rem_s32", BT_FN_INT_INT_INT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_REM_S64, BRIG_OPCODE_REM,
		  BRIG_TYPE_S64, "__hsail_rem_s64", BT_FN_LONG_LONG_LONG,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F32, BRIG_OPCODE_MIN,
		  BRIG_TYPE_F32, "__hsail_min_f32", BT_FN_FLOAT_FLOAT_FLOAT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F32, BRIG_OPCODE_MAX,
		  BRIG_TYPE_F32, "__hsail_max_f32", BT_FN_FLOAT_FLOAT_FLOAT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MIN_F64, BRIG_OPCODE_MIN,
		  BRIG_TYPE_F64, "__hsail_min_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_MAX_F64, BRIG_OPCODE_MAX,
		  BRIG_TYPE_F64, "__hsail_max_f64", BT_FN_DOUBLE_DOUBLE_DOUBLE,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32, BRIG_OPCODE_CLASS,
		  BRIG_TYPE_F32, "__hsail_class_f32", BT_FN_UINT_FLOAT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_CLASS_F32_F16, BRIG_OPCODE_CLASS,
		  BRIG_TYPE_F16, "__hsail_class_f32_f16", BT_FN_UINT_FLOAT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F32, BRIG_OPCODE_FRACT,
		  BRIG_TYPE_F32, "__hsail_fract_f32", BT_FN_FLOAT_FLOAT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_FRACT_F64, BRIG_OPCODE_FRACT,
		  BRIG_TYPE_F64, "__hsail_fract_f64", BT_FN_DOUBLE_DOUBLE,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BARRIER, BRIG_OPCODE_BARRIER,
		  BRIG_TYPE_NONE, "__hsail_barrier", BT_FN_VOID_PTR,
		  ATTR_NOTHROW_LIST)

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,
		  ATTR_NOTHROW_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_ARRIVEFBAR, BRIG_OPCODE_ARRIVEFBAR,
		  BRIG_TYPE_NONE, "__hsail_arrivefbar", BT_FN_VOID_UINT_PTR,
		  ATTR_NOTHROW_LIST)

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",
		  BT_FN_UINT_ULONG_ULONG_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_BYTEALIGN, BRIG_OPCODE_BYTEALIGN,
		  BRIG_TYPE_B32, "__hsail_bytealign",
		  BT_FN_UINT_ULONG_ULONG_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_LERP, BRIG_OPCODE_LERP,
		  BRIG_TYPE_U8X4, "__hsail_lerp", BT_FN_UINT_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_PACKCVT, BRIG_OPCODE_PACKCVT,
		  BRIG_TYPE_U8X4, "__hsail_packcvt",
		  BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_UNPACKCVT, BRIG_OPCODE_UNPACKCVT,
		  BRIG_TYPE_F32, "__hsail_unpackcvt", BT_FN_FLOAT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U16X2, BRIG_OPCODE_SAD,
		  BRIG_TYPE_U16X2, "__hsail_sad_u16x2",
		  BT_FN_UINT_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U32, BRIG_OPCODE_SAD,
		  BRIG_TYPE_U32, "__hsail_sad_u32", BT_FN_UINT_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SAD_U8X4, BRIG_OPCODE_SAD,
		  BRIG_TYPE_U8X4, "__hsail_sad_u8x4", BT_FN_UINT_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_BUILTIN (BUILT_IN_HSAIL_SADHI_U8X4, BRIG_OPCODE_SADHI,
		  BRIG_TYPE_U16X2, "__hsail_sadhi_u16x2_u8x4",
		  BT_FN_UINT_UINT_UINT_UINT,
		  ATTR_PURE_NOTHROW_LEAF_LIST)

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",
		      BT_FN_ULONG_ULONG_ULONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S64, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S64, "__hsail_sat_add_s64",
		      BT_FN_LONG_LONG_LONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U32, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U32, "__hsail_sat_add_u32",
		      BT_FN_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S32, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S32, "__hsail_sat_add_s32",
		      BT_FN_INT_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U16, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U16, "__hsail_sat_add_u16",
		      BT_FN_UINT16_UINT16_UINT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S16, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S16, "__hsail_sat_add_s16",
		      BT_FN_INT16_INT16_INT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_U8, BRIG_OPCODE_ADD,
		      BRIG_TYPE_U8, "__hsail_sat_add_u8",
		      BT_FN_UINT8_UINT8_UINT8, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_ADD_S8, BRIG_OPCODE_ADD,
		      BRIG_TYPE_S8, "__hsail_sat_add_s8",
		      BT_FN_INT8_INT8_INT8, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U64, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U64, "__hsail_sat_sub_u64",
		      BT_FN_ULONG_ULONG_ULONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S64, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S64, "__hsail_sat_sub_s64",
		      BT_FN_LONG_LONG_LONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U32, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U32, "__hsail_sat_sub_u32",
		      BT_FN_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S32, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S32, "__hsail_sat_sub_s32",
		      BT_FN_INT_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U16, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U16, "__hsail_sat_sub_u16",
		      BT_FN_UINT16_UINT16_UINT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S16, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S16, "__hsail_sat_sub_s16",
		      BT_FN_INT16_INT16_INT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_U8, BRIG_OPCODE_SUB,
		      BRIG_TYPE_U8, "__hsail_sat_sub_u8",
		      BT_FN_UINT8_UINT8_UINT8, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_SUB_S8, BRIG_OPCODE_SUB,
		      BRIG_TYPE_S8, "__hsail_sat_sub_s8",
		      BT_FN_INT8_INT8_INT8, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U64, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U64, "__hsail_sat_mul_u64",
		      BT_FN_ULONG_ULONG_ULONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S64, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S64, "__hsail_sat_mul_s64",
		      BT_FN_LONG_LONG_LONG, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U32, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U32, "__hsail_sat_mul_u32",
		      BT_FN_UINT_UINT_UINT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S32, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S32, "__hsail_sat_mul_s32",
		      BT_FN_INT_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U16, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U16, "__hsail_sat_mul_u16",
		      BT_FN_UINT16_UINT16_UINT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S16, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S16, "__hsail_sat_mul_s16",
		      BT_FN_INT16_INT16_INT16, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_U8, BRIG_OPCODE_MUL,
		      BRIG_TYPE_U8, "__hsail_sat_mul_u8",
		      BT_FN_UINT8_UINT8_UINT8, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_SAT_BUILTIN (BUILT_IN_HSAIL_SAT_MUL_S8, BRIG_OPCODE_MUL,
		      BRIG_TYPE_S8, "__hsail_sat_mul_s8",
		      BT_FN_INT8_INT8_INT8, ATTR_PURE_NOTHROW_LEAF_LIST)

#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",
		       BT_FN_FLOAT_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F32, "__hsail_ftz_f32",
		       BT_FN_FLOAT_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_FTZ_F64, "__hsail_ftz_f64",
		       BT_FN_DOUBLE_DOUBLE, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
		       BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)

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",
		       BT_FN_UINT16_UINT32, ATTR_PURE_NOTHROW_LEAF_LIST)

DEF_HSAIL_INTR_BUILTIN (BUILT_IN_HSAIL_F16_TO_F32, "__hsail_f16_to_f32",
		       BT_FN_UINT32_UINT16, ATTR_PURE_NOTHROW_LEAF_LIST)

#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",
				BT_FN_UINT8_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT8_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT16_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT16_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT32_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT64_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_LONG_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT8_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT8_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT16_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT16_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT32_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_INT_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_UINT64_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)

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",
				BT_FN_LONG_FLOAT, ATTR_PURE_NOTHROW_LEAF_LIST)
