1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/*===--------------------------------------------------------------------------
* ROCm Device Libraries
*
* This file is distributed under the University of Illinois Open Source
* License. See LICENSE.TXT for details.
*===------------------------------------------------------------------------*/
#include "mathH.h"
CONSTATTR half
MATH_MANGLE(native_rcp)(half x)
{
// FIXME: Should use IR fdiv with arcp set.
return __llvm_amdgcn_rcp_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_sqrt)(half x)
{
return __llvm_sqrt_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_rsqrt)(half x)
{
return __llvm_amdgcn_rsq_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_sin)(half x)
{
return __llvm_sin_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_cos)(half x)
{
return __llvm_cos_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_exp)(half x)
{
return __llvm_exp_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_exp2)(half x)
{
return __llvm_exp2_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_log)(half x)
{
return __llvm_log_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_log2)(half x)
{
return __llvm_log2_f16(x);
}
CONSTATTR half
MATH_MANGLE(native_log10)(half x)
{
return __llvm_log10_f16(x);
}
|