{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Array.Accelerate.LLVM.PTX.CodeGen.Intrinsic ( )
where
import LLVM.AST.Type.Name ( Label(..) )
import Data.Array.Accelerate.LLVM.CodeGen.Intrinsic
import Data.Array.Accelerate.LLVM.PTX.Target
import Data.ByteString.Short ( ShortByteString )
import Data.HashMap.Strict ( HashMap )
import Data.Monoid
import qualified Data.HashMap.Strict as HashMap
import Prelude as P
instance Intrinsic PTX where
intrinsicForTarget :: HashMap ShortByteString Label
intrinsicForTarget = HashMap ShortByteString Label
libdeviceIndex
libdeviceIndex :: HashMap ShortByteString Label
libdeviceIndex :: HashMap ShortByteString Label
libdeviceIndex =
let nv :: ShortByteString -> (ShortByteString, Label)
nv ShortByteString
base = (ShortByteString
base, ShortByteString -> Label
Label (ShortByteString -> Label) -> ShortByteString -> Label
forall a b. (a -> b) -> a -> b
$ ShortByteString
"__nv_" ShortByteString -> ShortByteString -> ShortByteString
forall a. Semigroup a => a -> a -> a
<> ShortByteString
base)
in
[(ShortByteString, Label)] -> HashMap ShortByteString Label
forall k v. (Eq k, Hashable k) => [(k, v)] -> HashMap k v
HashMap.fromList ([(ShortByteString, Label)] -> HashMap ShortByteString Label)
-> [(ShortByteString, Label)] -> HashMap ShortByteString Label
forall a b. (a -> b) -> a -> b
$ (ShortByteString -> (ShortByteString, Label))
-> [ShortByteString] -> [(ShortByteString, Label)]
forall a b. (a -> b) -> [a] -> [b]
map ShortByteString -> (ShortByteString, Label)
nv
[ ShortByteString
"abs"
, ShortByteString
"acos"
, ShortByteString
"acosf"
, ShortByteString
"acosh"
, ShortByteString
"acoshf"
, ShortByteString
"asin"
, ShortByteString
"asinf"
, ShortByteString
"asinh"
, ShortByteString
"asinhf"
, ShortByteString
"atan"
, ShortByteString
"atan2"
, ShortByteString
"atan2f"
, ShortByteString
"atanf"
, ShortByteString
"atanh"
, ShortByteString
"atanhf"
, ShortByteString
"brev"
, ShortByteString
"brevll"
, ShortByteString
"byte_perm"
, ShortByteString
"cbrt"
, ShortByteString
"cbrtf"
, ShortByteString
"ceil"
, ShortByteString
"ceilf"
, ShortByteString
"clz"
, ShortByteString
"clzll"
, ShortByteString
"copysign"
, ShortByteString
"copysignf"
, ShortByteString
"cos"
, ShortByteString
"cosf"
, ShortByteString
"cosh"
, ShortByteString
"coshf"
, ShortByteString
"cospi"
, ShortByteString
"cospif"
, ShortByteString
"dadd_rd"
, ShortByteString
"dadd_rn"
, ShortByteString
"dadd_ru"
, ShortByteString
"dadd_rz"
, ShortByteString
"ddiv_rd"
, ShortByteString
"ddiv_rn"
, ShortByteString
"ddiv_ru"
, ShortByteString
"ddiv_rz"
, ShortByteString
"dmul_rd"
, ShortByteString
"dmul_rn"
, ShortByteString
"dmul_ru"
, ShortByteString
"dmul_rz"
, ShortByteString
"double2float_rd"
, ShortByteString
"double2float_rn"
, ShortByteString
"double2float_ru"
, ShortByteString
"double2float_rz"
, ShortByteString
"double2hiint"
, ShortByteString
"double2int_rd"
, ShortByteString
"double2int_rn"
, ShortByteString
"double2int_ru"
, ShortByteString
"double2int_rz"
, ShortByteString
"double2ll_rd"
, ShortByteString
"double2ll_rn"
, ShortByteString
"double2ll_ru"
, ShortByteString
"double2ll_rz"
, ShortByteString
"double2loint"
, ShortByteString
"double2uint_rd"
, ShortByteString
"double2uint_rn"
, ShortByteString
"double2uint_ru"
, ShortByteString
"double2uint_rz"
, ShortByteString
"double2ull_rd"
, ShortByteString
"double2ull_rn"
, ShortByteString
"double2ull_ru"
, ShortByteString
"double2ull_rz"
, ShortByteString
"double_as_longlong"
, ShortByteString
"drcp_rd"
, ShortByteString
"drcp_rn"
, ShortByteString
"drcp_ru"
, ShortByteString
"drcp_rz"
, ShortByteString
"dsqrt_rd"
, ShortByteString
"dsqrt_rn"
, ShortByteString
"dsqrt_ru"
, ShortByteString
"dsqrt_rz"
, ShortByteString
"erf"
, ShortByteString
"erfc"
, ShortByteString
"erfcf"
, ShortByteString
"erfcinv"
, ShortByteString
"erfcinvf"
, ShortByteString
"erfcx"
, ShortByteString
"erfcxf"
, ShortByteString
"erff"
, ShortByteString
"erfinv"
, ShortByteString
"erfinvf"
, ShortByteString
"exp"
, ShortByteString
"exp10"
, ShortByteString
"exp10f"
, ShortByteString
"exp2"
, ShortByteString
"exp2f"
, ShortByteString
"expf"
, ShortByteString
"expm1"
, ShortByteString
"expm1f"
, ShortByteString
"fabs"
, ShortByteString
"fabsf"
, ShortByteString
"fadd_rd"
, ShortByteString
"fadd_rn"
, ShortByteString
"fadd_ru"
, ShortByteString
"fadd_rz"
, ShortByteString
"fast_cosf"
, ShortByteString
"fast_exp10f"
, ShortByteString
"fast_expf"
, ShortByteString
"fast_fdividef"
, ShortByteString
"fast_log10f"
, ShortByteString
"fast_log2f"
, ShortByteString
"fast_logf"
, ShortByteString
"fast_powf"
, ShortByteString
"fast_sincosf"
, ShortByteString
"fast_sinf"
, ShortByteString
"fast_tanf"
, ShortByteString
"fdim"
, ShortByteString
"fdimf"
, ShortByteString
"fdiv_rd"
, ShortByteString
"fdiv_rn"
, ShortByteString
"fdiv_ru"
, ShortByteString
"fdiv_rz"
, ShortByteString
"ffs"
, ShortByteString
"ffsll"
, ShortByteString
"finitef"
, ShortByteString
"float2half_rn"
, ShortByteString
"float2int_rd"
, ShortByteString
"float2int_rn"
, ShortByteString
"float2int_ru"
, ShortByteString
"float2int_rz"
, ShortByteString
"float2ll_rd"
, ShortByteString
"float2ll_rn"
, ShortByteString
"float2ll_ru"
, ShortByteString
"float2ll_rz"
, ShortByteString
"float2uint_rd"
, ShortByteString
"float2uint_rn"
, ShortByteString
"float2uint_ru"
, ShortByteString
"float2uint_rz"
, ShortByteString
"float2ull_rd"
, ShortByteString
"float2ull_rn"
, ShortByteString
"float2ull_ru"
, ShortByteString
"float2ull_rz"
, ShortByteString
"float_as_int"
, ShortByteString
"floor"
, ShortByteString
"floorf"
, ShortByteString
"fma"
, ShortByteString
"fma_rd"
, ShortByteString
"fma_rn"
, ShortByteString
"fma_ru"
, ShortByteString
"fma_rz"
, ShortByteString
"fmaf"
, ShortByteString
"fmaf_rd"
, ShortByteString
"fmaf_rn"
, ShortByteString
"fmaf_ru"
, ShortByteString
"fmaf_rz"
, ShortByteString
"fmax"
, ShortByteString
"fmaxf"
, ShortByteString
"fmin"
, ShortByteString
"fminf"
, ShortByteString
"fmod"
, ShortByteString
"fmodf"
, ShortByteString
"fmul_rd"
, ShortByteString
"fmul_rn"
, ShortByteString
"fmul_ru"
, ShortByteString
"fmul_rz"
, ShortByteString
"frcp_rd"
, ShortByteString
"frcp_rn"
, ShortByteString
"frcp_ru"
, ShortByteString
"frcp_rz"
, ShortByteString
"frexp"
, ShortByteString
"frexpf"
, ShortByteString
"frsqrt_rn"
, ShortByteString
"fsqrt_rd"
, ShortByteString
"fsqrt_rn"
, ShortByteString
"fsqrt_ru"
, ShortByteString
"fsqrt_rz"
, ShortByteString
"fsub_rd"
, ShortByteString
"fsub_rn"
, ShortByteString
"fsub_ru"
, ShortByteString
"fsub_rz"
, ShortByteString
"hadd"
, ShortByteString
"half2float"
, ShortByteString
"hiloint2double"
, ShortByteString
"hypot"
, ShortByteString
"hypotf"
, ShortByteString
"ilogb"
, ShortByteString
"ilogbf"
, ShortByteString
"int2double_rn"
, ShortByteString
"int2float_rd"
, ShortByteString
"int2float_rn"
, ShortByteString
"int2float_ru"
, ShortByteString
"int2float_rz"
, ShortByteString
"int_as_float"
, ShortByteString
"isfinited"
, ShortByteString
"isinfd"
, ShortByteString
"isinff"
, ShortByteString
"isnand"
, ShortByteString
"isnanf"
, ShortByteString
"j0"
, ShortByteString
"j0f"
, ShortByteString
"j1"
, ShortByteString
"j1f"
, ShortByteString
"jn"
, ShortByteString
"jnf"
, ShortByteString
"ldexp"
, ShortByteString
"ldexpf"
, ShortByteString
"lgamma"
, ShortByteString
"lgammaf"
, ShortByteString
"ll2double_rd"
, ShortByteString
"ll2double_rn"
, ShortByteString
"ll2double_ru"
, ShortByteString
"ll2double_rz"
, ShortByteString
"ll2float_rd"
, ShortByteString
"ll2float_rn"
, ShortByteString
"ll2float_ru"
, ShortByteString
"ll2float_rz"
, ShortByteString
"llabs"
, ShortByteString
"llmax"
, ShortByteString
"llmin"
, ShortByteString
"llrint"
, ShortByteString
"llrintf"
, ShortByteString
"llround"
, ShortByteString
"llroundf"
, ShortByteString
"log"
, ShortByteString
"log10"
, ShortByteString
"log10f"
, ShortByteString
"log1p"
, ShortByteString
"log1pf"
, ShortByteString
"log2"
, ShortByteString
"log2f"
, ShortByteString
"logb"
, ShortByteString
"logbf"
, ShortByteString
"logf"
, ShortByteString
"longlong_as_double"
, ShortByteString
"max"
, ShortByteString
"min"
, ShortByteString
"modf"
, ShortByteString
"modff"
, ShortByteString
"mul24"
, ShortByteString
"mul64hi"
, ShortByteString
"mulhi"
, ShortByteString
"nan"
, ShortByteString
"nanf"
, ShortByteString
"nearbyint"
, ShortByteString
"nearbyintf"
, ShortByteString
"nextafter"
, ShortByteString
"nextafterf"
, ShortByteString
"normcdf"
, ShortByteString
"normcdff"
, ShortByteString
"normcdfinv"
, ShortByteString
"normcdfinvf"
, ShortByteString
"popc"
, ShortByteString
"popcll"
, ShortByteString
"pow"
, ShortByteString
"powf"
, ShortByteString
"powi"
, ShortByteString
"powif"
, ShortByteString
"rcbrt"
, ShortByteString
"rcbrtf"
, ShortByteString
"remainder"
, ShortByteString
"remainderf"
, ShortByteString
"remquo"
, ShortByteString
"remquof"
, ShortByteString
"rhadd"
, ShortByteString
"rint"
, ShortByteString
"rintf"
, ShortByteString
"round"
, ShortByteString
"roundf"
, ShortByteString
"rsqrt"
, ShortByteString
"rsqrtf"
, ShortByteString
"sad"
, ShortByteString
"saturatef"
, ShortByteString
"scalbn"
, ShortByteString
"scalbnf"
, ShortByteString
"signbitd"
, ShortByteString
"signbitf"
, ShortByteString
"sin"
, ShortByteString
"sincos"
, ShortByteString
"sincosf"
, ShortByteString
"sincospi"
, ShortByteString
"sincospif"
, ShortByteString
"sinf"
, ShortByteString
"sinh"
, ShortByteString
"sinhf"
, ShortByteString
"sinpi"
, ShortByteString
"sinpif"
, ShortByteString
"sqrt"
, ShortByteString
"sqrtf"
, ShortByteString
"tan"
, ShortByteString
"tanf"
, ShortByteString
"tanh"
, ShortByteString
"tanhf"
, ShortByteString
"tgamma"
, ShortByteString
"tgammaf"
, ShortByteString
"trunc"
, ShortByteString
"truncf"
, ShortByteString
"uhadd"
, ShortByteString
"uint2double_rn"
, ShortByteString
"uint2float_rd"
, ShortByteString
"uint2float_rn"
, ShortByteString
"uint2float_ru"
, ShortByteString
"uint2float_rz"
, ShortByteString
"ull2double_rd"
, ShortByteString
"ull2double_rn"
, ShortByteString
"ull2double_ru"
, ShortByteString
"ull2double_rz"
, ShortByteString
"ull2float_rd"
, ShortByteString
"ull2float_rn"
, ShortByteString
"ull2float_ru"
, ShortByteString
"ull2float_rz"
, ShortByteString
"ullmax"
, ShortByteString
"ullmin"
, ShortByteString
"umax"
, ShortByteString
"umin"
, ShortByteString
"umul24"
, ShortByteString
"umul64hi"
, ShortByteString
"umulhi"
, ShortByteString
"urhadd"
, ShortByteString
"usad"
, ShortByteString
"y0"
, ShortByteString
"y0f"
, ShortByteString
"y1"
, ShortByteString
"y1f"
, ShortByteString
"yn"
, ShortByteString
"ynf"
]