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 16 namespace LIBC_NAMESPACE { 17 18 extern "C" { 19 float __ocml_acos_f32(float); 20 double __ocml_acos_f64(double); 21 float __ocml_acosh_f32(float); 22 double __ocml_acosh_f64(double); 23 float __ocml_asin_f32(float); 24 double __ocml_asin_f64(double); 25 float __ocml_asinh_f32(float); 26 double __ocml_asinh_f64(double); 27 float __ocml_atan_f32(float); 28 double __ocml_atan_f64(double); 29 float __ocml_atan2_f32(float, float); 30 double __ocml_atan2_f64(double, double); 31 float __ocml_atanh_f32(float); 32 double __ocml_atanh_f64(double); 33 float __ocml_cos_f32(float); 34 double __ocml_cos_f64(double); 35 float __ocml_cosh_f32(float); 36 double __ocml_cosh_f64(double); 37 float __ocml_erf_f32(float); 38 double __ocml_erf_f64(double); 39 float __ocml_exp_f32(float); 40 double __ocml_exp_f64(double); 41 float __ocml_exp2_f32(float); 42 double __ocml_exp2_f64(double); 43 float __ocml_exp10_f32(float); 44 double __ocml_exp10_f64(double); 45 double __ocml_exp2_f64(double); 46 float __ocml_expm1_f32(float); 47 double __ocml_expm1_f64(double); 48 float __ocml_fdim_f32(float, float); 49 double __ocml_fdim_f64(double, double); 50 float __ocml_hypot_f32(float, float); 51 double __ocml_hypot_f64(double, double); 52 int __ocml_ilogb_f64(double); 53 int __ocml_ilogb_f32(float); 54 float __ocml_ldexp_f32(float, int); 55 double __ocml_ldexp_f64(double, int); 56 float __ocml_log10_f32(float); 57 double __ocml_log10_f64(double); 58 float __ocml_log1p_f32(float); 59 double __ocml_log1p_f64(double); 60 float __ocml_log2_f32(float); 61 double __ocml_log2_f64(double); 62 float __ocml_log_f32(float); 63 double __ocml_log_f64(double); 64 float __ocml_nextafter_f32(float, float); 65 double __ocml_nextafter_f64(double, double); 66 float __ocml_pow_f32(float, float); 67 double __ocml_pow_f64(double, double); 68 float __ocml_sin_f32(float); 69 double __ocml_sin_f64(double); 70 float __ocml_sincos_f32(float, float *); 71 double __ocml_sincos_f64(double, double *); 72 float __ocml_sinh_f32(float); 73 double __ocml_sinh_f64(double); 74 float __ocml_tan_f32(float); 75 double __ocml_tan_f64(double); 76 float __ocml_tanh_f32(float); 77 double __ocml_tanh_f64(double); 78 float __ocml_remquo_f32(float, float, gpu::Private<int> *); 79 double __ocml_remquo_f64(double, double, gpu::Private<int> *); 80 double __ocml_tgamma_f64(double); 81 float __ocml_tgamma_f32(float); 82 } 83 84 } // namespace LIBC_NAMESPACE 85 86 #endif // LLVM_LIBC_SRC_MATH_AMDGPU_DECLARATIONS_H 87