1 //===-- AMDGPU specific declarations for math support ---------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_LIBC_SRC_MATH_AMDGPU_DECLARATIONS_H 10 #define LLVM_LIBC_SRC_MATH_AMDGPU_DECLARATIONS_H 11 12 #include "platform.h" 13 14 #include "src/__support/GPU/utils.h" 15 #include "src/__support/macros/config.h" 16 17 namespace LIBC_NAMESPACE_DECL { 18 19 extern "C" { 20 float __ocml_acos_f32(float); 21 double __ocml_acos_f64(double); 22 float __ocml_acosh_f32(float); 23 double __ocml_acosh_f64(double); 24 float __ocml_asin_f32(float); 25 double __ocml_asin_f64(double); 26 float __ocml_asinh_f32(float); 27 double __ocml_asinh_f64(double); 28 float __ocml_atan_f32(float); 29 double __ocml_atan_f64(double); 30 float __ocml_atan2_f32(float, float); 31 double __ocml_atan2_f64(double, double); 32 float __ocml_atanh_f32(float); 33 double __ocml_atanh_f64(double); 34 float __ocml_cos_f32(float); 35 double __ocml_cos_f64(double); 36 float __ocml_cosh_f32(float); 37 double __ocml_cosh_f64(double); 38 float __ocml_erf_f32(float); 39 double __ocml_erf_f64(double); 40 float __ocml_exp_f32(float); 41 double __ocml_exp_f64(double); 42 float __ocml_exp2_f32(float); 43 double __ocml_exp2_f64(double); 44 float __ocml_exp10_f32(float); 45 double __ocml_exp10_f64(double); 46 double __ocml_exp2_f64(double); 47 float __ocml_expm1_f32(float); 48 double __ocml_expm1_f64(double); 49 float __ocml_fdim_f32(float, float); 50 double __ocml_fdim_f64(double, double); 51 float __ocml_hypot_f32(float, float); 52 double __ocml_hypot_f64(double, double); 53 int __ocml_ilogb_f64(double); 54 int __ocml_ilogb_f32(float); 55 float __ocml_ldexp_f32(float, int); 56 double __ocml_ldexp_f64(double, int); 57 float __ocml_log10_f32(float); 58 double __ocml_log10_f64(double); 59 float __ocml_log1p_f32(float); 60 double __ocml_log1p_f64(double); 61 float __ocml_log2_f32(float); 62 double __ocml_log2_f64(double); 63 float __ocml_log_f32(float); 64 double __ocml_log_f64(double); 65 float __ocml_nextafter_f32(float, float); 66 double __ocml_nextafter_f64(double, double); 67 float __ocml_pow_f32(float, float); 68 double __ocml_pow_f64(double, double); 69 float __ocml_pown_f32(float, int); 70 double __ocml_pown_f64(double, int); 71 float __ocml_sin_f32(float); 72 double __ocml_sin_f64(double); 73 float __ocml_sincos_f32(float, float *); 74 double __ocml_sincos_f64(double, double *); 75 float __ocml_sinh_f32(float); 76 double __ocml_sinh_f64(double); 77 float __ocml_tan_f32(float); 78 double __ocml_tan_f64(double); 79 float __ocml_tanh_f32(float); 80 double __ocml_tanh_f64(double); 81 float __ocml_remquo_f32(float, float, gpu::Private<int> *); 82 double __ocml_remquo_f64(double, double, gpu::Private<int> *); 83 double __ocml_tgamma_f64(double); 84 float __ocml_tgamma_f32(float); 85 double __ocml_lgamma_f64(double); 86 double __ocml_lgamma_r_f64(double, gpu::Private<int> *); 87 } 88 89 } // namespace LIBC_NAMESPACE_DECL 90 91 #endif // LLVM_LIBC_SRC_MATH_AMDGPU_DECLARATIONS_H 92