#ifndef LLVM_LIBC_SRC_MATH_AMDGPU_PLATFORM_H
#define LLVM_LIBC_SRC_MATH_AMDGPU_PLATFORM_H
#include "hdr/stdint_proxy.h"
#include "src/__support/macros/attributes.h"
#include "src/__support/macros/config.h"
#include "src/__support/macros/properties/types.h"
namespace LIBC_NAMESPACE_DECL {
#ifdef LIBC_TARGET_ARCH_IS_AMDGPU
extern "C" {
extern const LIBC_INLINE_VAR uint8_t __oclc_unsafe_math_opt = 0;
extern const LIBC_INLINE_VAR uint8_t __oclc_daz_opt = 0;
extern const LIBC_INLINE_VAR uint8_t __oclc_correctly_rounded_sqrt32 = 1;
extern const LIBC_INLINE_VAR uint8_t __oclc_finite_only_opt = 0;
extern const LIBC_INLINE_VAR uint32_t __oclc_ISA_version = 9000;
}
[[gnu::alias("__oclc_unsafe_math_opt")]] const uint8_t __oclc_unsafe_math_opt__;
[[gnu::alias("__oclc_daz_opt")]] const uint8_t __oclc_daz_opt__;
[[gnu::alias("__oclc_correctly_rounded_sqrt32")]] const uint8_t
__oclc_correctly_rounded_sqrt32__;
[[gnu::alias("__oclc_finite_only_opt")]] const uint8_t __oclc_finite_only_opt__;
[[gnu::alias("__oclc_ISA_version")]] const uint32_t __oclc_ISA_version__;
#endif
}
extern "C" {
#ifdef AMDGPU_MATH_FOUND
double __ocml_atan2_f64(double, double);
float __ocml_atan2_f32(float, float);
double __ocml_exp_f64(double);
float __ocml_exp_f32(float);
float16 __ocml_exp_f16(float16);
double __ocml_log_f64(double);
float __ocml_log_f32(float);
float16 __ocml_log_f16(float16);
double __ocml_sin_f64(double);
float __ocml_sin_f32(float);
#endif
#ifdef NVPTX_MATH_FOUND
double __nv_atan2(double, double);
float __nv_atan2f(float, float);
double __nv_exp(double);
float __nv_expf(float);
double __nv_log(double);
float __nv_logf(float);
double __nv_sin(double);
float __nv_sinf(float);
#endif
}
#endif