blob: eba960eb96ac7ae5828d56bea2ea4697ded92cb7 [file] [log] [blame]
/*
* Function wrappers for mathbench.
*
* Copyright (c) 2022-2023, Arm Limited.
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
*/
static double
atan2_wrap (double x)
{
return atan2 (5.0, x);
}
static float
atan2f_wrap (float x)
{
return atan2f (5.0f, x);
}
static double
powi_wrap (double x)
{
return __builtin_powi (x, (int) round (x));
}
#if WANT_VMATH
#if __aarch64__
static double
__s_atan2_wrap (double x)
{
return __s_atan2 (5.0, x);
}
static float
__s_atan2f_wrap (float x)
{
return __s_atan2f (5.0f, x);
}
static v_double
__v_atan2_wrap (v_double x)
{
return __v_atan2 (v_double_dup (5.0), x);
}
static v_float
__v_atan2f_wrap (v_float x)
{
return __v_atan2f (v_float_dup (5.0f), x);
}
#ifdef __vpcs
__vpcs static v_double
__vn_atan2_wrap (v_double x)
{
return __vn_atan2 (v_double_dup (5.0), x);
}
__vpcs static v_float
__vn_atan2f_wrap (v_float x)
{
return __vn_atan2f (v_float_dup (5.0f), x);
}
__vpcs static v_double
_Z_atan2_wrap (v_double x)
{
return _ZGVnN2vv_atan2 (v_double_dup (5.0), x);
}
__vpcs static v_float
_Z_atan2f_wrap (v_float x)
{
return _ZGVnN4vv_atan2f (v_float_dup (5.0f), x);
}
#endif // __vpcs
#endif // __arch64__
#endif // WANT_VMATH
#if WANT_SVE_MATH
static sv_float
__sv_atan2f_wrap (sv_float x, sv_bool pg)
{
return __sv_atan2f_x (x, svdup_n_f32 (5.0f), pg);
}
static sv_float
_Z_sv_atan2f_wrap (sv_float x, sv_bool pg)
{
return _ZGVsMxvv_atan2f (x, svdup_n_f32 (5.0f), pg);
}
static sv_double
__sv_atan2_wrap (sv_double x, sv_bool pg)
{
return __sv_atan2_x (x, svdup_n_f64 (5.0), pg);
}
static sv_double
_Z_sv_atan2_wrap (sv_double x, sv_bool pg)
{
return _ZGVsMxvv_atan2 (x, svdup_n_f64 (5.0), pg);
}
static sv_float
_Z_sv_powi_wrap (sv_float x, sv_bool pg)
{
return _ZGVsMxvv_powi (x, svcvt_s32_f32_x (pg, x), pg);
}
static sv_float
__sv_powif_wrap (sv_float x, sv_bool pg)
{
return __sv_powif_x (x, svcvt_s32_f32_x (pg, x), pg);
}
static sv_double
_Z_sv_powk_wrap (sv_double x, sv_bool pg)
{
return _ZGVsMxvv_powk (x, svcvt_s64_f64_x (pg, x), pg);
}
static sv_double
__sv_powi_wrap (sv_double x, sv_bool pg)
{
return __sv_powi_x (x, svcvt_s64_f64_x (pg, x), pg);
}
#endif // WANT_SVE_MATH