25#if !defined(__HIPCC_RTC__)
27#include "amd_hip_vector_types.h"
30#if defined(__cplusplus)
35#if defined(__clang__) && defined(__HIP__)
39 HIP_vector_base<
short, 2>::Native_vec_,
40 HIP_vector_base<
short, 2>::Native_vec_,
45unsigned int __ockl_udot2(
46 HIP_vector_base<
unsigned short, 2>::Native_vec_,
47 HIP_vector_base<
unsigned short, 2>::Native_vec_,
53 HIP_vector_base<
char, 4>::Native_vec_,
54 HIP_vector_base<
char, 4>::Native_vec_,
59unsigned int __ockl_udot4(
60 HIP_vector_base<
unsigned char, 4>::Native_vec_,
61 HIP_vector_base<
unsigned char, 4>::Native_vec_,
66int __ockl_sdot8(
int,
int,
int,
bool);
70unsigned int __ockl_udot8(
unsigned int,
unsigned int,
unsigned int,
bool);
73#if !__CLANG_HIP_RUNTIME_WRAPPER_INCLUDED__
77float __ocml_acos_f32(
float);
80float __ocml_acosh_f32(
float);
83float __ocml_asin_f32(
float);
86float __ocml_asinh_f32(
float);
89float __ocml_atan2_f32(
float,
float);
92float __ocml_atan_f32(
float);
95float __ocml_atanh_f32(
float);
98float __ocml_cbrt_f32(
float);
100__attribute__((const))
101float __ocml_ceil_f32(
float);
103__attribute__((const))
105float __ocml_copysign_f32(
float,
float);
107float __ocml_cos_f32(
float);
109float __ocml_native_cos_f32(
float);
113float __ocml_cosh_f32(
float);
115float __ocml_cospi_f32(
float);
117float __ocml_i0_f32(
float);
119float __ocml_i1_f32(
float);
122float __ocml_erfc_f32(
float);
125float __ocml_erfcinv_f32(
float);
128float __ocml_erfcx_f32(
float);
131float __ocml_erf_f32(
float);
134float __ocml_erfinv_f32(
float);
137float __ocml_exp10_f32(
float);
140float __ocml_native_exp10_f32(
float);
143float __ocml_exp2_f32(
float);
146float __ocml_exp_f32(
float);
149float __ocml_native_exp_f32(
float);
152float __ocml_expm1_f32(
float);
154__attribute__((const))
155float __ocml_fabs_f32(
float);
157__attribute__((const))
158float __ocml_fdim_f32(
float,
float);
160__attribute__((const))
161float __ocml_floor_f32(
float);
163__attribute__((const))
164float __ocml_fma_f32(
float,
float,
float);
166__attribute__((const))
167float __ocml_fmax_f32(
float,
float);
169__attribute__((const))
170float __ocml_fmin_f32(
float,
float);
172__attribute__((const))
174float __ocml_fmod_f32(
float,
float);
176float __ocml_frexp_f32(
float, __attribute__((address_space(5)))
int*);
178__attribute__((const))
179float __ocml_hypot_f32(
float,
float);
181__attribute__((const))
182int __ocml_ilogb_f32(
float);
184__attribute__((const))
185int __ocml_isfinite_f32(
float);
187__attribute__((const))
188int __ocml_isinf_f32(
float);
190__attribute__((const))
191int __ocml_isnan_f32(
float);
193float __ocml_j0_f32(
float);
195float __ocml_j1_f32(
float);
197__attribute__((const))
198float __ocml_ldexp_f32(
float,
int);
200float __ocml_lgamma_f32(
float);
203float __ocml_log10_f32(
float);
206float __ocml_native_log10_f32(
float);
209float __ocml_log1p_f32(
float);
212float __ocml_log2_f32(
float);
215float __ocml_native_log2_f32(
float);
217__attribute__((const))
218float __ocml_logb_f32(
float);
221float __ocml_log_f32(
float);
224float __ocml_native_log_f32(
float);
226float __ocml_modf_f32(
float, __attribute__((address_space(5)))
float*);
228__attribute__((const))
229float __ocml_nearbyint_f32(
float);
231__attribute__((const))
232float __ocml_nextafter_f32(
float,
float);
234__attribute__((const))
235float __ocml_len3_f32(
float,
float,
float);
237__attribute__((const))
238float __ocml_len4_f32(
float,
float,
float,
float);
241float __ocml_ncdf_f32(
float);
244float __ocml_ncdfinv_f32(
float);
247float __ocml_pow_f32(
float,
float);
250float __ocml_pown_f32(
float,
int);
253float __ocml_rcbrt_f32(
float);
255__attribute__((const))
256float __ocml_remainder_f32(
float,
float);
258float __ocml_remquo_f32(
float,
float, __attribute__((address_space(5)))
int*);
260__attribute__((const))
261float __ocml_rhypot_f32(
float,
float);
263__attribute__((const))
264float __ocml_rint_f32(
float);
266__attribute__((const))
267float __ocml_rlen3_f32(
float,
float,
float);
269__attribute__((const))
270float __ocml_rlen4_f32(
float,
float,
float,
float);
272__attribute__((const))
273float __ocml_round_f32(
float);
276float __ocml_rsqrt_f32(
float);
278__attribute__((const))
279float __ocml_scalb_f32(
float,
float);
281__attribute__((const))
282float __ocml_scalbn_f32(
float,
int);
284__attribute__((const))
285int __ocml_signbit_f32(
float);
287float __ocml_sincos_f32(
float, __attribute__((address_space(5)))
float*);
289float __ocml_sincospi_f32(
float, __attribute__((address_space(5)))
float*);
291float __ocml_sin_f32(
float);
293float __ocml_native_sin_f32(
float);
296float __ocml_sinh_f32(
float);
298float __ocml_sinpi_f32(
float);
300__attribute__((const))
301float __ocml_sqrt_f32(
float);
303__attribute__((const))
304float __ocml_native_sqrt_f32(
float);
306float __ocml_tan_f32(
float);
309float __ocml_tanh_f32(
float);
311float __ocml_tgamma_f32(
float);
313__attribute__((const))
314float __ocml_trunc_f32(
float);
316float __ocml_y0_f32(
float);
318float __ocml_y1_f32(
float);
322__attribute__((const))
323float __ocml_add_rte_f32(
float,
float);
325__attribute__((const))
326float __ocml_add_rtn_f32(
float,
float);
328__attribute__((const))
329float __ocml_add_rtp_f32(
float,
float);
331__attribute__((const))
332float __ocml_add_rtz_f32(
float,
float);
334__attribute__((const))
335float __ocml_sub_rte_f32(
float,
float);
337__attribute__((const))
338float __ocml_sub_rtn_f32(
float,
float);
340__attribute__((const))
341float __ocml_sub_rtp_f32(
float,
float);
343__attribute__((const))
344float __ocml_sub_rtz_f32(
float,
float);
346__attribute__((const))
347float __ocml_mul_rte_f32(
float,
float);
349__attribute__((const))
350float __ocml_mul_rtn_f32(
float,
float);
352__attribute__((const))
353float __ocml_mul_rtp_f32(
float,
float);
355__attribute__((const))
356float __ocml_mul_rtz_f32(
float,
float);
358__attribute__((const))
359float __ocml_div_rte_f32(
float,
float);
361__attribute__((const))
362float __ocml_div_rtn_f32(
float,
float);
364__attribute__((const))
365float __ocml_div_rtp_f32(
float,
float);
367__attribute__((const))
368float __ocml_div_rtz_f32(
float,
float);
370__attribute__((const))
371float __ocml_sqrt_rte_f32(
float);
373__attribute__((const))
374float __ocml_sqrt_rtn_f32(
float);
376__attribute__((const))
377float __ocml_sqrt_rtp_f32(
float);
379__attribute__((const))
380float __ocml_sqrt_rtz_f32(
float);
382__attribute__((const))
383float __ocml_fma_rte_f32(
float,
float,
float);
385__attribute__((const))
386float __ocml_fma_rtn_f32(
float,
float,
float);
388__attribute__((const))
389float __ocml_fma_rtp_f32(
float,
float,
float);
391__attribute__((const))
392float __ocml_fma_rtz_f32(
float,
float,
float);
398__attribute__((const))
399double __ocml_acos_f64(
double);
402double __ocml_acosh_f64(
double);
404__attribute__((const))
405double __ocml_asin_f64(
double);
408double __ocml_asinh_f64(
double);
410__attribute__((const))
411double __ocml_atan2_f64(
double,
double);
413__attribute__((const))
414double __ocml_atan_f64(
double);
417double __ocml_atanh_f64(
double);
420double __ocml_cbrt_f64(
double);
422__attribute__((const))
423double __ocml_ceil_f64(
double);
425__attribute__((const))
426double __ocml_copysign_f64(
double,
double);
428double __ocml_cos_f64(
double);
431double __ocml_cosh_f64(
double);
433double __ocml_cospi_f64(
double);
435double __ocml_i0_f64(
double);
437double __ocml_i1_f64(
double);
440double __ocml_erfc_f64(
double);
443double __ocml_erfcinv_f64(
double);
446double __ocml_erfcx_f64(
double);
449double __ocml_erf_f64(
double);
452double __ocml_erfinv_f64(
double);
455double __ocml_exp10_f64(
double);
458double __ocml_exp2_f64(
double);
461double __ocml_exp_f64(
double);
464double __ocml_expm1_f64(
double);
466__attribute__((const))
467double __ocml_fabs_f64(
double);
469__attribute__((const))
470double __ocml_fdim_f64(
double,
double);
472__attribute__((const))
473double __ocml_floor_f64(
double);
475__attribute__((const))
476double __ocml_fma_f64(
double,
double,
double);
478__attribute__((const))
479double __ocml_fmax_f64(
double,
double);
481__attribute__((const))
482double __ocml_fmin_f64(
double,
double);
484__attribute__((const))
485double __ocml_fmod_f64(
double,
double);
487double __ocml_frexp_f64(
double, __attribute__((address_space(5)))
int*);
489__attribute__((const))
490double __ocml_hypot_f64(
double,
double);
492__attribute__((const))
493int __ocml_ilogb_f64(
double);
495__attribute__((const))
496int __ocml_isfinite_f64(
double);
498__attribute__((const))
499int __ocml_isinf_f64(
double);
501__attribute__((const))
502int __ocml_isnan_f64(
double);
504double __ocml_j0_f64(
double);
506double __ocml_j1_f64(
double);
508__attribute__((const))
509double __ocml_ldexp_f64(
double,
int);
511double __ocml_lgamma_f64(
double);
514double __ocml_log10_f64(
double);
517double __ocml_log1p_f64(
double);
520double __ocml_log2_f64(
double);
522__attribute__((const))
523double __ocml_logb_f64(
double);
526double __ocml_log_f64(
double);
528double __ocml_modf_f64(
double, __attribute__((address_space(5)))
double*);
530__attribute__((const))
531double __ocml_nearbyint_f64(
double);
533__attribute__((const))
534double __ocml_nextafter_f64(
double,
double);
536__attribute__((const))
537double __ocml_len3_f64(
double,
double,
double);
539__attribute__((const))
540double __ocml_len4_f64(
double,
double,
double,
double);
543double __ocml_ncdf_f64(
double);
546double __ocml_ncdfinv_f64(
double);
549double __ocml_pow_f64(
double,
double);
552double __ocml_pown_f64(
double,
int);
555double __ocml_rcbrt_f64(
double);
557__attribute__((const))
558double __ocml_remainder_f64(
double,
double);
560double __ocml_remquo_f64(
561 double,
double, __attribute__((address_space(5)))
int*);
563__attribute__((const))
564double __ocml_rhypot_f64(
double,
double);
566__attribute__((const))
567double __ocml_rint_f64(
double);
569__attribute__((const))
570double __ocml_rlen3_f64(
double,
double,
double);
572__attribute__((const))
573double __ocml_rlen4_f64(
double,
double,
double,
double);
575__attribute__((const))
576double __ocml_round_f64(
double);
579double __ocml_rsqrt_f64(
double);
581__attribute__((const))
582double __ocml_scalb_f64(
double,
double);
584__attribute__((const))
585double __ocml_scalbn_f64(
double,
int);
587__attribute__((const))
588int __ocml_signbit_f64(
double);
590double __ocml_sincos_f64(
double, __attribute__((address_space(5)))
double*);
592double __ocml_sincospi_f64(
double, __attribute__((address_space(5)))
double*);
594double __ocml_sin_f64(
double);
597double __ocml_sinh_f64(
double);
599double __ocml_sinpi_f64(
double);
601__attribute__((const))
602double __ocml_sqrt_f64(
double);
604double __ocml_tan_f64(
double);
607double __ocml_tanh_f64(
double);
609double __ocml_tgamma_f64(
double);
611__attribute__((const))
612double __ocml_trunc_f64(
double);
614double __ocml_y0_f64(
double);
616double __ocml_y1_f64(
double);
620__attribute__((const))
621double __ocml_add_rte_f64(
double,
double);
623__attribute__((const))
624double __ocml_add_rtn_f64(
double,
double);
626__attribute__((const))
627double __ocml_add_rtp_f64(
double,
double);
629__attribute__((const))
630double __ocml_add_rtz_f64(
double,
double);
632__attribute__((const))
633double __ocml_sub_rte_f64(
double,
double);
635__attribute__((const))
636double __ocml_sub_rtn_f64(
double,
double);
638__attribute__((const))
639double __ocml_sub_rtp_f64(
double,
double);
641__attribute__((const))
642double __ocml_sub_rtz_f64(
double,
double);
644__attribute__((const))
645double __ocml_mul_rte_f64(
double,
double);
647__attribute__((const))
648double __ocml_mul_rtn_f64(
double,
double);
650__attribute__((const))
651double __ocml_mul_rtp_f64(
double,
double);
653__attribute__((const))
654double __ocml_mul_rtz_f64(
double,
double);
656__attribute__((const))
657double __ocml_div_rte_f64(
double,
double);
659__attribute__((const))
660double __ocml_div_rtn_f64(
double,
double);
662__attribute__((const))
663double __ocml_div_rtp_f64(
double,
double);
665__attribute__((const))
666double __ocml_div_rtz_f64(
double,
double);
668__attribute__((const))
669double __ocml_sqrt_rte_f64(
double);
671__attribute__((const))
672double __ocml_sqrt_rtn_f64(
double);
674__attribute__((const))
675double __ocml_sqrt_rtp_f64(
double);
677__attribute__((const))
678double __ocml_sqrt_rtz_f64(
double);
680__attribute__((const))
681double __ocml_fma_rte_f64(
double,
double,
double);
683__attribute__((const))
684double __ocml_fma_rtn_f64(
double,
double,
double);
686__attribute__((const))
687double __ocml_fma_rtp_f64(
double,
double,
double);
689__attribute__((const))
690double __ocml_fma_rtz_f64(
double,
double,
double);
696#if defined(__cplusplus)