26 #if defined(__cplusplus)
31 #if (__hcc_workweek__ >= 19015) || __HIP_CLANG_ONLY__
33 __attribute__((
const))
35 HIP_vector_base<
short, 2>::Native_vec_,
36 HIP_vector_base<
short, 2>::Native_vec_,
40 __attribute__((const))
41 unsigned int __ockl_udot2(
42 HIP_vector_base<
unsigned short, 2>::Native_vec_,
43 HIP_vector_base<
unsigned short, 2>::Native_vec_,
47 __attribute__((const))
49 HIP_vector_base<
char, 4>::Native_vec_,
50 HIP_vector_base<
char, 4>::Native_vec_,
54 __attribute__((const))
55 unsigned int __ockl_udot4(
56 HIP_vector_base<
unsigned char, 4>::Native_vec_,
57 HIP_vector_base<
unsigned char, 4>::Native_vec_,
61 __attribute__((const))
62 int __ockl_sdot8(
int,
int,
int,
bool);
65 __attribute__((const))
66 unsigned int __ockl_udot8(
unsigned int,
unsigned int,
unsigned int,
bool);
69 #if !__CLANG_HIP_RUNTIME_WRAPPER_INCLUDED__
72 __attribute__((
const))
73 float __ocml_acos_f32(
float);
76 float __ocml_acosh_f32(
float);
78 __attribute__((const))
79 float __ocml_asin_f32(
float);
82 float __ocml_asinh_f32(
float);
84 __attribute__((const))
85 float __ocml_atan2_f32(
float,
float);
87 __attribute__((const))
88 float __ocml_atan_f32(
float);
91 float __ocml_atanh_f32(
float);
94 float __ocml_cbrt_f32(
float);
96 __attribute__((const))
97 float __ocml_ceil_f32(
float);
99 __attribute__((const))
101 float __ocml_copysign_f32(
float,
float);
103 float __ocml_cos_f32(
float);
105 float __ocml_native_cos_f32(
float);
107 __attribute__((pure))
109 float __ocml_cosh_f32(
float);
111 float __ocml_cospi_f32(
float);
113 float __ocml_i0_f32(
float);
115 float __ocml_i1_f32(
float);
117 __attribute__((pure))
118 float __ocml_erfc_f32(
float);
120 __attribute__((pure))
121 float __ocml_erfcinv_f32(
float);
123 __attribute__((pure))
124 float __ocml_erfcx_f32(
float);
126 __attribute__((pure))
127 float __ocml_erf_f32(
float);
129 __attribute__((pure))
130 float __ocml_erfinv_f32(
float);
132 __attribute__((pure))
133 float __ocml_exp10_f32(
float);
135 __attribute__((pure))
136 float __ocml_native_exp10_f32(
float);
138 __attribute__((pure))
139 float __ocml_exp2_f32(
float);
141 __attribute__((pure))
142 float __ocml_exp_f32(
float);
144 __attribute__((pure))
145 float __ocml_native_exp_f32(
float);
147 __attribute__((pure))
148 float __ocml_expm1_f32(
float);
150 __attribute__((const))
151 float __ocml_fabs_f32(
float);
153 __attribute__((const))
154 float __ocml_fdim_f32(
float,
float);
156 __attribute__((const))
157 float __ocml_floor_f32(
float);
159 __attribute__((const))
160 float __ocml_fma_f32(
float,
float,
float);
162 __attribute__((const))
163 float __ocml_fmax_f32(
float,
float);
165 __attribute__((const))
166 float __ocml_fmin_f32(
float,
float);
168 __attribute__((const))
170 float __ocml_fmod_f32(
float,
float);
172 float __ocml_frexp_f32(
float, __attribute__((address_space(5)))
int*);
174 __attribute__((const))
175 float __ocml_hypot_f32(
float,
float);
177 __attribute__((const))
178 int __ocml_ilogb_f32(
float);
180 __attribute__((const))
181 int __ocml_isfinite_f32(
float);
183 __attribute__((const))
184 int __ocml_isinf_f32(
float);
186 __attribute__((const))
187 int __ocml_isnan_f32(
float);
189 float __ocml_j0_f32(
float);
191 float __ocml_j1_f32(
float);
193 __attribute__((const))
194 float __ocml_ldexp_f32(
float,
int);
196 float __ocml_lgamma_f32(
float);
198 __attribute__((pure))
199 float __ocml_log10_f32(
float);
201 __attribute__((pure))
202 float __ocml_native_log10_f32(
float);
204 __attribute__((pure))
205 float __ocml_log1p_f32(
float);
207 __attribute__((pure))
208 float __ocml_log2_f32(
float);
210 __attribute__((pure))
211 float __ocml_native_log2_f32(
float);
213 __attribute__((const))
214 float __ocml_logb_f32(
float);
216 __attribute__((pure))
217 float __ocml_log_f32(
float);
219 __attribute__((pure))
220 float __ocml_native_log_f32(
float);
222 float __ocml_modf_f32(
float, __attribute__((address_space(5)))
float*);
224 __attribute__((const))
225 float __ocml_nearbyint_f32(
float);
227 __attribute__((const))
228 float __ocml_nextafter_f32(
float,
float);
230 __attribute__((const))
231 float __ocml_len3_f32(
float,
float,
float);
233 __attribute__((const))
234 float __ocml_len4_f32(
float,
float,
float,
float);
236 __attribute__((pure))
237 float __ocml_ncdf_f32(
float);
239 __attribute__((pure))
240 float __ocml_ncdfinv_f32(
float);
242 __attribute__((pure))
243 float __ocml_pow_f32(
float,
float);
245 __attribute__((pure))
246 float __ocml_pown_f32(
float,
int);
248 __attribute__((pure))
249 float __ocml_rcbrt_f32(
float);
251 __attribute__((const))
252 float __ocml_remainder_f32(
float,
float);
254 float __ocml_remquo_f32(
float,
float, __attribute__((address_space(5)))
int*);
256 __attribute__((const))
257 float __ocml_rhypot_f32(
float,
float);
259 __attribute__((const))
260 float __ocml_rint_f32(
float);
262 __attribute__((const))
263 float __ocml_rlen3_f32(
float,
float,
float);
265 __attribute__((const))
266 float __ocml_rlen4_f32(
float,
float,
float,
float);
268 __attribute__((const))
269 float __ocml_round_f32(
float);
271 __attribute__((pure))
272 float __ocml_rsqrt_f32(
float);
274 __attribute__((const))
275 float __ocml_scalb_f32(
float,
float);
277 __attribute__((const))
278 float __ocml_scalbn_f32(
float,
int);
280 __attribute__((const))
281 int __ocml_signbit_f32(
float);
283 float __ocml_sincos_f32(
float, __attribute__((address_space(5)))
float*);
285 float __ocml_sincospi_f32(
float, __attribute__((address_space(5)))
float*);
287 float __ocml_sin_f32(
float);
289 float __ocml_native_sin_f32(
float);
291 __attribute__((pure))
292 float __ocml_sinh_f32(
float);
294 float __ocml_sinpi_f32(
float);
296 __attribute__((const))
297 float __ocml_sqrt_f32(
float);
299 __attribute__((const))
300 float __ocml_native_sqrt_f32(
float);
302 float __ocml_tan_f32(
float);
304 __attribute__((pure))
305 float __ocml_tanh_f32(
float);
307 float __ocml_tgamma_f32(
float);
309 __attribute__((const))
310 float __ocml_trunc_f32(
float);
312 float __ocml_y0_f32(
float);
314 float __ocml_y1_f32(
float);
318 __attribute__((const))
319 float __ocml_add_rte_f32(
float,
float);
321 __attribute__((const))
322 float __ocml_add_rtn_f32(
float,
float);
324 __attribute__((const))
325 float __ocml_add_rtp_f32(
float,
float);
327 __attribute__((const))
328 float __ocml_add_rtz_f32(
float,
float);
330 __attribute__((const))
331 float __ocml_sub_rte_f32(
float,
float);
333 __attribute__((const))
334 float __ocml_sub_rtn_f32(
float,
float);
336 __attribute__((const))
337 float __ocml_sub_rtp_f32(
float,
float);
339 __attribute__((const))
340 float __ocml_sub_rtz_f32(
float,
float);
342 __attribute__((const))
343 float __ocml_mul_rte_f32(
float,
float);
345 __attribute__((const))
346 float __ocml_mul_rtn_f32(
float,
float);
348 __attribute__((const))
349 float __ocml_mul_rtp_f32(
float,
float);
351 __attribute__((const))
352 float __ocml_mul_rtz_f32(
float,
float);
354 __attribute__((const))
355 float __ocml_div_rte_f32(
float,
float);
357 __attribute__((const))
358 float __ocml_div_rtn_f32(
float,
float);
360 __attribute__((const))
361 float __ocml_div_rtp_f32(
float,
float);
363 __attribute__((const))
364 float __ocml_div_rtz_f32(
float,
float);
366 __attribute__((const))
367 float __ocml_sqrt_rte_f32(
float);
369 __attribute__((const))
370 float __ocml_sqrt_rtn_f32(
float);
372 __attribute__((const))
373 float __ocml_sqrt_rtp_f32(
float);
375 __attribute__((const))
376 float __ocml_sqrt_rtz_f32(
float);
378 __attribute__((const))
379 float __ocml_fma_rte_f32(
float,
float,
float);
381 __attribute__((const))
382 float __ocml_fma_rtn_f32(
float,
float,
float);
384 __attribute__((const))
385 float __ocml_fma_rtp_f32(
float,
float,
float);
387 __attribute__((const))
388 float __ocml_fma_rtz_f32(
float,
float,
float);
391 __attribute__((const))
392 float __llvm_amdgcn_cos_f32(
float) __asm("llvm.amdgcn.cos.f32");
394 __attribute__((const))
395 float __llvm_amdgcn_rcp_f32(
float) __asm("llvm.amdgcn.rcp.f32");
397 __attribute__((const))
398 float __llvm_amdgcn_rsq_f32(
float) __asm("llvm.amdgcn.rsq.f32");
400 __attribute__((const))
401 float __llvm_amdgcn_sin_f32(
float) __asm("llvm.amdgcn.sin.f32");
407 __attribute__((const))
408 double __ocml_acos_f64(
double);
410 __attribute__((pure))
411 double __ocml_acosh_f64(
double);
413 __attribute__((const))
414 double __ocml_asin_f64(
double);
416 __attribute__((pure))
417 double __ocml_asinh_f64(
double);
419 __attribute__((const))
420 double __ocml_atan2_f64(
double,
double);
422 __attribute__((const))
423 double __ocml_atan_f64(
double);
425 __attribute__((pure))
426 double __ocml_atanh_f64(
double);
428 __attribute__((pure))
429 double __ocml_cbrt_f64(
double);
431 __attribute__((const))
432 double __ocml_ceil_f64(
double);
434 __attribute__((const))
435 double __ocml_copysign_f64(
double,
double);
437 double __ocml_cos_f64(
double);
439 __attribute__((pure))
440 double __ocml_cosh_f64(
double);
442 double __ocml_cospi_f64(
double);
444 double __ocml_i0_f64(
double);
446 double __ocml_i1_f64(
double);
448 __attribute__((pure))
449 double __ocml_erfc_f64(
double);
451 __attribute__((pure))
452 double __ocml_erfcinv_f64(
double);
454 __attribute__((pure))
455 double __ocml_erfcx_f64(
double);
457 __attribute__((pure))
458 double __ocml_erf_f64(
double);
460 __attribute__((pure))
461 double __ocml_erfinv_f64(
double);
463 __attribute__((pure))
464 double __ocml_exp10_f64(
double);
466 __attribute__((pure))
467 double __ocml_exp2_f64(
double);
469 __attribute__((pure))
470 double __ocml_exp_f64(
double);
472 __attribute__((pure))
473 double __ocml_expm1_f64(
double);
475 __attribute__((const))
476 double __ocml_fabs_f64(
double);
478 __attribute__((const))
479 double __ocml_fdim_f64(
double,
double);
481 __attribute__((const))
482 double __ocml_floor_f64(
double);
484 __attribute__((const))
485 double __ocml_fma_f64(
double,
double,
double);
487 __attribute__((const))
488 double __ocml_fmax_f64(
double,
double);
490 __attribute__((const))
491 double __ocml_fmin_f64(
double,
double);
493 __attribute__((const))
494 double __ocml_fmod_f64(
double,
double);
496 double __ocml_frexp_f64(
double, __attribute__((address_space(5)))
int*);
498 __attribute__((const))
499 double __ocml_hypot_f64(
double,
double);
501 __attribute__((const))
502 int __ocml_ilogb_f64(
double);
504 __attribute__((const))
505 int __ocml_isfinite_f64(
double);
507 __attribute__((const))
508 int __ocml_isinf_f64(
double);
510 __attribute__((const))
511 int __ocml_isnan_f64(
double);
513 double __ocml_j0_f64(
double);
515 double __ocml_j1_f64(
double);
517 __attribute__((const))
518 double __ocml_ldexp_f64(
double,
int);
520 double __ocml_lgamma_f64(
double);
522 __attribute__((pure))
523 double __ocml_log10_f64(
double);
525 __attribute__((pure))
526 double __ocml_log1p_f64(
double);
528 __attribute__((pure))
529 double __ocml_log2_f64(
double);
531 __attribute__((const))
532 double __ocml_logb_f64(
double);
534 __attribute__((pure))
535 double __ocml_log_f64(
double);
537 double __ocml_modf_f64(
double, __attribute__((address_space(5)))
double*);
539 __attribute__((const))
540 double __ocml_nearbyint_f64(
double);
542 __attribute__((const))
543 double __ocml_nextafter_f64(
double,
double);
545 __attribute__((const))
546 double __ocml_len3_f64(
double,
double,
double);
548 __attribute__((const))
549 double __ocml_len4_f64(
double,
double,
double,
double);
551 __attribute__((pure))
552 double __ocml_ncdf_f64(
double);
554 __attribute__((pure))
555 double __ocml_ncdfinv_f64(
double);
557 __attribute__((pure))
558 double __ocml_pow_f64(
double,
double);
560 __attribute__((pure))
561 double __ocml_pown_f64(
double,
int);
563 __attribute__((pure))
564 double __ocml_rcbrt_f64(
double);
566 __attribute__((const))
567 double __ocml_remainder_f64(
double,
double);
569 double __ocml_remquo_f64(
570 double,
double, __attribute__((address_space(5)))
int*);
572 __attribute__((const))
573 double __ocml_rhypot_f64(
double,
double);
575 __attribute__((const))
576 double __ocml_rint_f64(
double);
578 __attribute__((const))
579 double __ocml_rlen3_f64(
double,
double,
double);
581 __attribute__((const))
582 double __ocml_rlen4_f64(
double,
double,
double,
double);
584 __attribute__((const))
585 double __ocml_round_f64(
double);
587 __attribute__((pure))
588 double __ocml_rsqrt_f64(
double);
590 __attribute__((const))
591 double __ocml_scalb_f64(
double,
double);
593 __attribute__((const))
594 double __ocml_scalbn_f64(
double,
int);
596 __attribute__((const))
597 int __ocml_signbit_f64(
double);
599 double __ocml_sincos_f64(
double, __attribute__((address_space(5)))
double*);
601 double __ocml_sincospi_f64(
double, __attribute__((address_space(5)))
double*);
603 double __ocml_sin_f64(
double);
605 __attribute__((pure))
606 double __ocml_sinh_f64(
double);
608 double __ocml_sinpi_f64(
double);
610 __attribute__((const))
611 double __ocml_sqrt_f64(
double);
613 double __ocml_tan_f64(
double);
615 __attribute__((pure))
616 double __ocml_tanh_f64(
double);
618 double __ocml_tgamma_f64(
double);
620 __attribute__((const))
621 double __ocml_trunc_f64(
double);
623 double __ocml_y0_f64(
double);
625 double __ocml_y1_f64(
double);
629 __attribute__((const))
630 double __ocml_add_rte_f64(
double,
double);
632 __attribute__((const))
633 double __ocml_add_rtn_f64(
double,
double);
635 __attribute__((const))
636 double __ocml_add_rtp_f64(
double,
double);
638 __attribute__((const))
639 double __ocml_add_rtz_f64(
double,
double);
641 __attribute__((const))
642 double __ocml_sub_rte_f64(
double,
double);
644 __attribute__((const))
645 double __ocml_sub_rtn_f64(
double,
double);
647 __attribute__((const))
648 double __ocml_sub_rtp_f64(
double,
double);
650 __attribute__((const))
651 double __ocml_sub_rtz_f64(
double,
double);
653 __attribute__((const))
654 double __ocml_mul_rte_f64(
double,
double);
656 __attribute__((const))
657 double __ocml_mul_rtn_f64(
double,
double);
659 __attribute__((const))
660 double __ocml_mul_rtp_f64(
double,
double);
662 __attribute__((const))
663 double __ocml_mul_rtz_f64(
double,
double);
665 __attribute__((const))
666 double __ocml_div_rte_f64(
double,
double);
668 __attribute__((const))
669 double __ocml_div_rtn_f64(
double,
double);
671 __attribute__((const))
672 double __ocml_div_rtp_f64(
double,
double);
674 __attribute__((const))
675 double __ocml_div_rtz_f64(
double,
double);
677 __attribute__((const))
678 double __ocml_sqrt_rte_f64(
double);
680 __attribute__((const))
681 double __ocml_sqrt_rtn_f64(
double);
683 __attribute__((const))
684 double __ocml_sqrt_rtp_f64(
double);
686 __attribute__((const))
687 double __ocml_sqrt_rtz_f64(
double);
689 __attribute__((const))
690 double __ocml_fma_rte_f64(
double,
double,
double);
692 __attribute__((const))
693 double __ocml_fma_rtn_f64(
double,
double,
double);
695 __attribute__((const))
696 double __ocml_fma_rtp_f64(
double,
double,
double);
698 __attribute__((const))
699 double __ocml_fma_rtz_f64(
double,
double,
double);
702 __attribute__((const))
703 double __llvm_amdgcn_rcp_f64(
double) __asm("llvm.amdgcn.rcp.f64");
705 __attribute__((const))
706 double __llvm_amdgcn_rsq_f64(
double) __asm("llvm.amdgcn.rsq.f64");
710 #endif // !__CLANG_HIP_RUNTIME_WRAPPER_INCLUDED__
712 #if defined(__cplusplus)