Files
rocm-systems/hipify-clang/src/CUDA2HIP_Device_functions.cpp
T
2019-12-04 13:27:46 +03:00

617 baris
40 KiB
C++

/*
Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "CUDA2HIP.h"
// Maps CUDA header names to HIP header names
const std::map<llvm::StringRef, hipCounter> CUDA_DEVICE_FUNC_MAP{
// math functions
{"abs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"labs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"llabs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fabs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fabsf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"min", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fminf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"max", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmaxf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmax", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cos", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sincos", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sincosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rsqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rsqrtf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"exp2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"exp2f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"exp10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"exp10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"expm1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"expm1f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log2f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log1p", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log1pf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"floor", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"exp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cosh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sinh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tanh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"acosh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"acoshf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"asinh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"asinhf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atanh", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atanhf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ldexp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ldexpf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"logb", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"logbf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ilogb", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ilogbf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"scalbn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"scalbnf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"scalbln", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"scalblnf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"frexp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"frexpf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"round", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"roundf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lround", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lroundf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"llround", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"llroundf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rintf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lrint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lrintf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"llrint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"llrintf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nearbyint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nearbyintf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ceil", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"trunc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"truncf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fdim", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fdimf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atan2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"acos", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"asin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hypot", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rhypot", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hypotf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rhypotf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"norm3d", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnorm3d", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"norm4d", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnorm4d", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"norm", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnorm", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnormf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"normf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"norm3df", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnorm3df", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"norm4df", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rnorm4df", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cbrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cbrtf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rcbrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"rcbrtf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sinpi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sinpif", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cospi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cospif", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sincospi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sincospif", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"pow", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"modf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmod", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"remainder", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"remainderf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"remquo", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"remquof", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"j0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"j0f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"j1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"j1f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"jn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"jnf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"y0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"y0f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"y1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"y1f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"yn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ynf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cyl_bessel_i0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cyl_bessel_i0f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cyl_bessel_i1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cyl_bessel_i1f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erff", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfinv", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfinvf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfcf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lgamma", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfcinv", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfcinvf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"normcdfinv", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"normcdfinvf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"normcdf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"normcdff", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfcx", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"erfcxf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"lgammaf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tgamma", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tgammaf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"copysign", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"copysignf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nextafter", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nextafterf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"nanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fma", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmaf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"acosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"asinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atan2f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"cosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"coshf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sinhf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"tanhf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"expf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"logf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"log10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"modff", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"powf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"sqrtf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"ceilf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"floorf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fmodf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"signbit", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"isfinite", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"isnan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"isinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"umin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"llmin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"ullmin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"umax", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"llmax", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"ullmax", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isinff", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isnanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__finite", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__finitef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__signbit", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isnan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__signbitf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__signbitl", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__finitel", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isinfl", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__isnanl", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"_ldsign", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"_fdsign", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"_Pow_int", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
// static math functions declared in device-functions.h
{"mulhi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"mul64hi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"float_as_int", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"int_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"float_as_uint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"uint_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"saturate", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"mul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"umul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"float2int", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"int2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"uint2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
// device functions
{"__mulhi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__umulhi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__mul64hi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__umul64hi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float_as_int", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float_as_uint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__syncthreads", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__threadfence", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__threadfence_block", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__saturatef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__sad", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__usad", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__mul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__umul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fdividef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fdividef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"fdivide", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__sinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__cosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__tanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__sincosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__expf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__exp10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__log2f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__log10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__logf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__powf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2int_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2int_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2int_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2int_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2uint_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2uint_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2uint_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2uint_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ll_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ll_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ll_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ll_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ull_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ull_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ull_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2ull_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fadd_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fadd_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fadd_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fadd_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsub_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsub_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsub_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsub_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmul_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmul_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmul_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmul_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmaf_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmaf_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmaf_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fmaf_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__frcp_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__frcp_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__frcp_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__frcp_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsqrt_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsqrt_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsqrt_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fsqrt_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__frsqrt_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fdiv_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fdiv_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fdiv_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__fdiv_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__clz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ffs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__popc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__brev", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__clzll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ffsll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__popcll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__brevll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__byte_perm", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__rhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__urhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__double2int_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__double2uint_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__double2ll_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__double2ull_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__prof_trigger", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__trap", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__brkpt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__pm0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__pm1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__pm2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__pm3", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
// SIMD functions
{"__vabs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsss2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vadd2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vaddss2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vaddus2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vavgs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vavgu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vhaddu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpeq2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpges2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgeu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgts2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgtu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmples2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmplts2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpltu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpne2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsdiffu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmaxs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmaxu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmins2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vminu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vseteq2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetges2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetgeu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetgts2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetles2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetleu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetlts2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetltu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetne2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsadu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsub2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsubss2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsubus2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vneg2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vnegss2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsdiffs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsads2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabs4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsss4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vadd4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vaddss4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vaddus4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vavgs4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vavgu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vhaddu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpeq4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpges4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgeu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgts4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpgtu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmples4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpleu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmplts4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpltu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vcmpne4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsdiffu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmaxs4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmaxu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vmins4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vminu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vseteq4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetles4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetleu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetlts4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetltu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetges4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetgeu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetgts4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetgtu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsetne4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsadu4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsub4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsubss4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsubus4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vneg4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vnegss4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vabsdiffs4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__vsads4", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
// fp16 functions
{"__float2half", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float2half2_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__floats2half2_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__low2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__high2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__float22half2_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half22float2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2int_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2int_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2int_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2int_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__int2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2short_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2short_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2short_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2short_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__short2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__short2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__short2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__short2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2uint_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2uint_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2uint_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2uint_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__uint2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ushort_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ushort_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ushort_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ushort_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ushort2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ushort2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ushort2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ushort2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ull_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ull_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ull_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ull_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ull2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ll_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ll_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ll_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2ll_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2half_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2half_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2half_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ll2half_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"htrunc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hceil", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hfloor", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hrint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2trunc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2ceil", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2floor", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2rint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__lowhigh2highlow", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__lows2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__highs2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__high2half", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__low2half", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hisinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__halves2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__low2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__high2half2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half_as_short", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__half_as_ushort", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__short_as_half", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ushort_as_half", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ldg", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ldcg", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ldca", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__ldcs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__heq2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hne2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hle2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hge2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hlt2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgt2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hequ2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hneu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hleu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgeu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hltu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgtu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hisnan2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hadd2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hsub2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hmul2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__h2div", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hadd2_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hsub2_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hmul2_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hfma2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hfma2_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hneg2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hsub", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hmul", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hdiv", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hadd_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hsub_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hmul_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hfma", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hfma_sat", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hneg", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__habs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__habs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__hbeq2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbne2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hble2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbge2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hblt2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbgt2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbequ2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbneu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbleu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbgeu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbltu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hbgtu2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__heq", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hne", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hle", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hge", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hlt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hequ", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hneu", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hleu", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgeu", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hltu", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hgtu", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__hisnan", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hsqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hrsqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hrcp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hlog", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hlog2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hlog10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hexp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hexp2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hexp10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hcos", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"hsin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2sqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2rsqrt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2rcp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2log", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2log2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2log10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2exp", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2exp2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2exp10", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2cos", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"h2sin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"__shfl_sync", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__shfl_up_sync", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__shfl_down_sync", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
{"__shfl_xor_sync", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},
// atomic functions
{"atomicAdd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicSub", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicExch", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicMin", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicMax", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicInc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicDec", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicAnd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicOr", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicXor", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
{"atomicCAS", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}},
};