@cpp-linter/clang-tidy-darwin-x64 16.0.3 → 18.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{16 → 18}/include/__clang_cuda_device_functions.h +2 -2
- package/lib/clang/{16 → 18}/include/__clang_cuda_intrinsics.h +191 -0
- package/lib/clang/{16 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
- package/lib/clang/{16 → 18}/include/__clang_cuda_math.h +3 -3
- package/lib/clang/{16 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
- package/lib/clang/{16 → 18}/include/__clang_hip_cmath.h +1 -1
- package/lib/clang/{16 → 18}/include/__clang_hip_libdevice_declares.h +32 -30
- package/lib/clang/{16 → 18}/include/__clang_hip_math.h +244 -238
- package/lib/clang/{16 → 18}/include/__clang_hip_runtime_wrapper.h +44 -23
- package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
- package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
- package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_list.h +13 -0
- package/lib/clang/{16 → 18}/include/__stddef_max_align_t.h +1 -1
- package/lib/clang/18/include/__stddef_null.h +29 -0
- package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
- package/lib/clang/18/include/__stddef_offsetof.h +17 -0
- package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
- package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
- package/lib/clang/18/include/__stddef_size_t.h +20 -0
- package/lib/clang/18/include/__stddef_unreachable.h +21 -0
- package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
- package/lib/clang/18/include/__stddef_wint_t.h +15 -0
- package/lib/clang/18/include/adcintrin.h +160 -0
- package/lib/clang/18/include/adxintrin.h +102 -0
- package/lib/clang/{16 → 18}/include/altivec.h +167 -136
- package/lib/clang/{16 → 18}/include/ammintrin.h +4 -4
- package/lib/clang/18/include/amxcomplexintrin.h +169 -0
- package/lib/clang/{16 → 18}/include/arm_acle.h +124 -40
- package/lib/clang/{16 → 18}/include/arm_neon.h +249 -328
- package/lib/clang/18/include/arm_sme.h +2412 -0
- package/lib/clang/{16 → 18}/include/arm_sve.h +7454 -364
- package/lib/clang/18/include/arm_vector_types.h +345 -0
- package/lib/clang/18/include/avx2intrin.h +5284 -0
- package/lib/clang/{16 → 18}/include/avx512bf16intrin.h +3 -2
- package/lib/clang/{16 → 18}/include/avx512bitalgintrin.h +4 -1
- package/lib/clang/{16 → 18}/include/avx512bwintrin.h +28 -38
- package/lib/clang/{16 → 18}/include/avx512cdintrin.h +3 -1
- package/lib/clang/{16 → 18}/include/avx512dqintrin.h +4 -2
- package/lib/clang/{16 → 18}/include/avx512fintrin.h +24 -10
- package/lib/clang/{16 → 18}/include/avx512fp16intrin.h +18 -12
- package/lib/clang/{16 → 18}/include/avx512ifmaintrin.h +3 -1
- package/lib/clang/{16 → 18}/include/avx512ifmavlintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512pfintrin.h +0 -5
- package/lib/clang/{16 → 18}/include/avx512vbmi2intrin.h +1 -1
- package/lib/clang/{16 → 18}/include/avx512vbmiintrin.h +3 -2
- package/lib/clang/{16 → 18}/include/avx512vbmivlintrin.h +8 -3
- package/lib/clang/{16 → 18}/include/avx512vlbf16intrin.h +8 -6
- package/lib/clang/{16 → 18}/include/avx512vlbitalgintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlbwintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlcdintrin.h +8 -3
- package/lib/clang/{16 → 18}/include/avx512vldqintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlfp16intrin.h +2 -2
- package/lib/clang/{16 → 18}/include/avx512vlintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlvbmi2intrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlvnniintrin.h +8 -2
- package/lib/clang/{16 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
- package/lib/clang/{16 → 18}/include/avx512vnniintrin.h +3 -2
- package/lib/clang/{16 → 18}/include/avx512vp2intersectintrin.h +3 -2
- package/lib/clang/{16 → 18}/include/avx512vpopcntdqintrin.h +3 -1
- package/lib/clang/{16 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
- package/lib/clang/{16 → 18}/include/avxintrin.h +29 -12
- package/lib/clang/18/include/avxvnniint16intrin.h +473 -0
- package/lib/clang/18/include/bmi2intrin.h +255 -0
- package/lib/clang/{16 → 18}/include/bmiintrin.h +231 -46
- package/lib/clang/{16 → 18}/include/clflushoptintrin.h +9 -0
- package/lib/clang/{16 → 18}/include/clzerointrin.h +7 -5
- package/lib/clang/18/include/cuda_wrappers/bits/basic_string.h +9 -0
- package/lib/clang/18/include/cuda_wrappers/bits/basic_string.tcc +9 -0
- package/lib/clang/18/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
- package/lib/clang/{16 → 18}/include/emmintrin.h +10 -10
- package/lib/clang/18/include/fmaintrin.h +780 -0
- package/lib/clang/{16 → 18}/include/gfniintrin.h +23 -6
- package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
- package/lib/clang/18/include/ia32intrin.h +863 -0
- package/lib/clang/{16 → 18}/include/immintrin.h +182 -11
- package/lib/clang/{16 → 18}/include/intrin.h +16 -0
- package/lib/clang/{16 → 18}/include/larchintrin.h +13 -1
- package/lib/clang/18/include/lasxintrin.h +3884 -0
- package/lib/clang/{16 → 18}/include/limits.h +7 -5
- package/lib/clang/18/include/llvm_libc_wrappers/assert.h +34 -0
- package/lib/clang/18/include/llvm_libc_wrappers/ctype.h +102 -0
- package/lib/clang/18/include/llvm_libc_wrappers/inttypes.h +34 -0
- package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
- package/lib/clang/18/include/llvm_libc_wrappers/stdlib.h +45 -0
- package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
- package/lib/clang/18/include/llvm_libc_wrappers/time.h +34 -0
- package/lib/clang/18/include/lsxintrin.h +3750 -0
- package/lib/clang/{16 → 18}/include/mmintrin.h +7 -5
- package/lib/clang/{16 → 18}/include/module.modulemap +155 -2
- package/lib/clang/18/include/mwaitxintrin.h +62 -0
- package/lib/clang/{16 → 18}/include/opencl-c-base.h +8 -0
- package/lib/clang/{16 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
- package/lib/clang/{16 → 18}/include/openmp_wrappers/cmath +1 -1
- package/lib/clang/{16 → 18}/include/openmp_wrappers/new +1 -1
- package/lib/clang/{16 → 18}/include/pmmintrin.h +15 -8
- package/lib/clang/{16 → 18}/include/ppc_wrappers/emmintrin.h +2 -1
- package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
- package/lib/clang/{16 → 18}/include/ppc_wrappers/smmintrin.h +37 -17
- package/lib/clang/18/include/rdseedintrin.h +105 -0
- package/lib/clang/18/include/riscv_bitmanip.h +195 -0
- package/lib/clang/18/include/riscv_crypto.h +170 -0
- package/lib/clang/18/include/riscv_ntlh.h +26 -0
- package/lib/clang/18/include/riscv_vector.h +431 -0
- package/lib/clang/18/include/sha512intrin.h +200 -0
- package/lib/clang/18/include/shaintrin.h +189 -0
- package/lib/clang/18/include/sifive_vector.h +16 -0
- package/lib/clang/18/include/sm3intrin.h +238 -0
- package/lib/clang/18/include/sm4intrin.h +269 -0
- package/lib/clang/{16 → 18}/include/smmintrin.h +3 -3
- package/lib/clang/{16 → 18}/include/stdalign.h +3 -0
- package/lib/clang/18/include/stdarg.h +79 -0
- package/lib/clang/{16 → 18}/include/stdatomic.h +7 -2
- package/lib/clang/18/include/stdckdint.h +42 -0
- package/lib/clang/18/include/stddef.h +123 -0
- package/lib/clang/{16 → 18}/include/stdint.h +19 -48
- package/lib/clang/{16 → 18}/include/stdnoreturn.h +2 -2
- package/lib/clang/{16 → 18}/include/tmmintrin.h +7 -2
- package/lib/clang/18/include/usermsrintrin.h +51 -0
- package/lib/clang/{16 → 18}/include/vaesintrin.h +4 -2
- package/lib/clang/{16 → 18}/include/vecintrin.h +217 -199
- package/lib/clang/{16 → 18}/include/wasm_simd128.h +132 -12
- package/lib/clang/{16 → 18}/include/x86gprintrin.h +5 -0
- package/lib/clang/{16 → 18}/include/xmmintrin.h +9 -5
- package/lib/clang/18/include/xsavecintrin.h +84 -0
- package/package.json +6 -6
- package/lib/clang/16/include/adxintrin.h +0 -72
- package/lib/clang/16/include/avx2intrin.h +0 -1148
- package/lib/clang/16/include/bmi2intrin.h +0 -81
- package/lib/clang/16/include/fmaintrin.h +0 -216
- package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +0 -223
- package/lib/clang/16/include/ia32intrin.h +0 -441
- package/lib/clang/16/include/mwaitxintrin.h +0 -33
- package/lib/clang/16/include/rdseedintrin.h +0 -42
- package/lib/clang/16/include/riscv_vector.h +0 -211
- package/lib/clang/16/include/shaintrin.h +0 -61
- package/lib/clang/16/include/stdarg.h +0 -51
- package/lib/clang/16/include/stddef.h +0 -128
- package/lib/clang/16/include/xsavecintrin.h +0 -34
- /package/lib/clang/{16 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{16 → 18}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{16 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{16 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{16 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{16 → 18}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{16 → 18}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{16 → 18}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{16 → 18}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/amxintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm64intr.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_bf16.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_cde.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_cmse.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_fp16.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_mve.h +0 -0
- /package/lib/clang/{16 → 18}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{16 → 18}/include/armintr.h +0 -0
- /package/lib/clang/{16 → 18}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/builtins.h +0 -0
- /package/lib/clang/{16 → 18}/include/cet.h +0 -0
- /package/lib/clang/{16 → 18}/include/cetintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/clwbintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/cpuid.h +0 -0
- /package/lib/clang/{16 → 18}/include/crc32intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{16 → 18}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{16 → 18}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{16 → 18}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{16 → 18}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/f16cintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/float.h +0 -0
- /package/lib/clang/{16 → 18}/include/fma4intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{16 → 18}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{16 → 18}/include/hexagon_types.h +0 -0
- /package/lib/clang/{16 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
- /package/lib/clang/{16 → 18}/include/hlsl.h +0 -0
- /package/lib/clang/{16 → 18}/include/hresetintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/htmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{16 → 18}/include/inttypes.h +0 -0
- /package/lib/clang/{16 → 18}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/iso646.h +0 -0
- /package/lib/clang/{16 → 18}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/lwpintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/mm3dnow.h +0 -0
- /package/lib/clang/{16 → 18}/include/mm_malloc.h +0 -0
- /package/lib/clang/{16 → 18}/include/movdirintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/msa.h +0 -0
- /package/lib/clang/{16 → 18}/include/nmmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/opencl-c.h +0 -0
- /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{16 → 18}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{16 → 18}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/pkuintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/popcntintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/raointintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/rtmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/s390intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/serializeintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/sgxintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/stdbool.h +0 -0
- /package/lib/clang/{16 → 18}/include/tbmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/tgmath.h +0 -0
- /package/lib/clang/{16 → 18}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/uintrintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/unwind.h +0 -0
- /package/lib/clang/{16 → 18}/include/vadefs.h +0 -0
- /package/lib/clang/{16 → 18}/include/varargs.h +0 -0
- /package/lib/clang/{16 → 18}/include/velintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{16 → 18}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{16 → 18}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/wmmintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/x86intrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/xopintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{16 → 18}/include/xtestintrin.h +0 -0
|
@@ -14,9 +14,6 @@
|
|
|
14
14
|
#endif
|
|
15
15
|
|
|
16
16
|
#if !defined(__HIPCC_RTC__)
|
|
17
|
-
#if defined(__cplusplus)
|
|
18
|
-
#include <algorithm>
|
|
19
|
-
#endif
|
|
20
17
|
#include <limits.h>
|
|
21
18
|
#include <stdint.h>
|
|
22
19
|
#ifdef __OPENMP_AMDGCN__
|
|
@@ -32,6 +29,17 @@
|
|
|
32
29
|
#define __DEVICE__ static __device__ inline __attribute__((always_inline))
|
|
33
30
|
#endif
|
|
34
31
|
|
|
32
|
+
// Device library provides fast low precision and slow full-recision
|
|
33
|
+
// implementations for some functions. Which one gets selected depends on
|
|
34
|
+
// __CLANG_GPU_APPROX_TRANSCENDENTALS__ which gets defined by clang if
|
|
35
|
+
// -ffast-math or -fgpu-approx-transcendentals are in effect.
|
|
36
|
+
#pragma push_macro("__FAST_OR_SLOW")
|
|
37
|
+
#if defined(__CLANG_GPU_APPROX_TRANSCENDENTALS__)
|
|
38
|
+
#define __FAST_OR_SLOW(fast, slow) fast
|
|
39
|
+
#else
|
|
40
|
+
#define __FAST_OR_SLOW(fast, slow) slow
|
|
41
|
+
#endif
|
|
42
|
+
|
|
35
43
|
// A few functions return bool type starting only in C++11.
|
|
36
44
|
#pragma push_macro("__RETURN_TYPE")
|
|
37
45
|
#ifdef __OPENMP_AMDGCN__
|
|
@@ -139,21 +147,180 @@ uint64_t __make_mantissa(const char *__tagp __attribute__((nonnull))) {
|
|
|
139
147
|
}
|
|
140
148
|
|
|
141
149
|
// BEGIN FLOAT
|
|
150
|
+
|
|
151
|
+
// BEGIN INTRINSICS
|
|
152
|
+
|
|
153
|
+
__DEVICE__
|
|
154
|
+
float __cosf(float __x) { return __ocml_native_cos_f32(__x); }
|
|
155
|
+
|
|
156
|
+
__DEVICE__
|
|
157
|
+
float __exp10f(float __x) {
|
|
158
|
+
const float __log2_10 = 0x1.a934f0p+1f;
|
|
159
|
+
return __builtin_amdgcn_exp2f(__log2_10 * __x);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
__DEVICE__
|
|
163
|
+
float __expf(float __x) {
|
|
164
|
+
const float __log2_e = 0x1.715476p+0;
|
|
165
|
+
return __builtin_amdgcn_exp2f(__log2_e * __x);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
169
|
+
__DEVICE__
|
|
170
|
+
float __fadd_rd(float __x, float __y) { return __ocml_add_rtn_f32(__x, __y); }
|
|
171
|
+
__DEVICE__
|
|
172
|
+
float __fadd_rn(float __x, float __y) { return __ocml_add_rte_f32(__x, __y); }
|
|
173
|
+
__DEVICE__
|
|
174
|
+
float __fadd_ru(float __x, float __y) { return __ocml_add_rtp_f32(__x, __y); }
|
|
175
|
+
__DEVICE__
|
|
176
|
+
float __fadd_rz(float __x, float __y) { return __ocml_add_rtz_f32(__x, __y); }
|
|
177
|
+
#else
|
|
178
|
+
__DEVICE__
|
|
179
|
+
float __fadd_rn(float __x, float __y) { return __x + __y; }
|
|
180
|
+
#endif
|
|
181
|
+
|
|
182
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
183
|
+
__DEVICE__
|
|
184
|
+
float __fdiv_rd(float __x, float __y) { return __ocml_div_rtn_f32(__x, __y); }
|
|
185
|
+
__DEVICE__
|
|
186
|
+
float __fdiv_rn(float __x, float __y) { return __ocml_div_rte_f32(__x, __y); }
|
|
187
|
+
__DEVICE__
|
|
188
|
+
float __fdiv_ru(float __x, float __y) { return __ocml_div_rtp_f32(__x, __y); }
|
|
189
|
+
__DEVICE__
|
|
190
|
+
float __fdiv_rz(float __x, float __y) { return __ocml_div_rtz_f32(__x, __y); }
|
|
191
|
+
#else
|
|
192
|
+
__DEVICE__
|
|
193
|
+
float __fdiv_rn(float __x, float __y) { return __x / __y; }
|
|
194
|
+
#endif
|
|
195
|
+
|
|
196
|
+
__DEVICE__
|
|
197
|
+
float __fdividef(float __x, float __y) { return __x / __y; }
|
|
198
|
+
|
|
199
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
200
|
+
__DEVICE__
|
|
201
|
+
float __fmaf_rd(float __x, float __y, float __z) {
|
|
202
|
+
return __ocml_fma_rtn_f32(__x, __y, __z);
|
|
203
|
+
}
|
|
204
|
+
__DEVICE__
|
|
205
|
+
float __fmaf_rn(float __x, float __y, float __z) {
|
|
206
|
+
return __ocml_fma_rte_f32(__x, __y, __z);
|
|
207
|
+
}
|
|
208
|
+
__DEVICE__
|
|
209
|
+
float __fmaf_ru(float __x, float __y, float __z) {
|
|
210
|
+
return __ocml_fma_rtp_f32(__x, __y, __z);
|
|
211
|
+
}
|
|
212
|
+
__DEVICE__
|
|
213
|
+
float __fmaf_rz(float __x, float __y, float __z) {
|
|
214
|
+
return __ocml_fma_rtz_f32(__x, __y, __z);
|
|
215
|
+
}
|
|
216
|
+
#else
|
|
217
|
+
__DEVICE__
|
|
218
|
+
float __fmaf_rn(float __x, float __y, float __z) {
|
|
219
|
+
return __builtin_fmaf(__x, __y, __z);
|
|
220
|
+
}
|
|
221
|
+
#endif
|
|
222
|
+
|
|
223
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
224
|
+
__DEVICE__
|
|
225
|
+
float __fmul_rd(float __x, float __y) { return __ocml_mul_rtn_f32(__x, __y); }
|
|
226
|
+
__DEVICE__
|
|
227
|
+
float __fmul_rn(float __x, float __y) { return __ocml_mul_rte_f32(__x, __y); }
|
|
228
|
+
__DEVICE__
|
|
229
|
+
float __fmul_ru(float __x, float __y) { return __ocml_mul_rtp_f32(__x, __y); }
|
|
230
|
+
__DEVICE__
|
|
231
|
+
float __fmul_rz(float __x, float __y) { return __ocml_mul_rtz_f32(__x, __y); }
|
|
232
|
+
#else
|
|
233
|
+
__DEVICE__
|
|
234
|
+
float __fmul_rn(float __x, float __y) { return __x * __y; }
|
|
235
|
+
#endif
|
|
236
|
+
|
|
237
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
238
|
+
__DEVICE__
|
|
239
|
+
float __frcp_rd(float __x) { return __ocml_div_rtn_f32(1.0f, __x); }
|
|
240
|
+
__DEVICE__
|
|
241
|
+
float __frcp_rn(float __x) { return __ocml_div_rte_f32(1.0f, __x); }
|
|
242
|
+
__DEVICE__
|
|
243
|
+
float __frcp_ru(float __x) { return __ocml_div_rtp_f32(1.0f, __x); }
|
|
244
|
+
__DEVICE__
|
|
245
|
+
float __frcp_rz(float __x) { return __ocml_div_rtz_f32(1.0f, __x); }
|
|
246
|
+
#else
|
|
247
|
+
__DEVICE__
|
|
248
|
+
float __frcp_rn(float __x) { return 1.0f / __x; }
|
|
249
|
+
#endif
|
|
250
|
+
|
|
251
|
+
__DEVICE__
|
|
252
|
+
float __frsqrt_rn(float __x) { return __builtin_amdgcn_rsqf(__x); }
|
|
253
|
+
|
|
254
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
255
|
+
__DEVICE__
|
|
256
|
+
float __fsqrt_rd(float __x) { return __ocml_sqrt_rtn_f32(__x); }
|
|
257
|
+
__DEVICE__
|
|
258
|
+
float __fsqrt_rn(float __x) { return __ocml_sqrt_rte_f32(__x); }
|
|
259
|
+
__DEVICE__
|
|
260
|
+
float __fsqrt_ru(float __x) { return __ocml_sqrt_rtp_f32(__x); }
|
|
261
|
+
__DEVICE__
|
|
262
|
+
float __fsqrt_rz(float __x) { return __ocml_sqrt_rtz_f32(__x); }
|
|
263
|
+
#else
|
|
264
|
+
__DEVICE__
|
|
265
|
+
float __fsqrt_rn(float __x) { return __ocml_native_sqrt_f32(__x); }
|
|
266
|
+
#endif
|
|
267
|
+
|
|
268
|
+
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
269
|
+
__DEVICE__
|
|
270
|
+
float __fsub_rd(float __x, float __y) { return __ocml_sub_rtn_f32(__x, __y); }
|
|
271
|
+
__DEVICE__
|
|
272
|
+
float __fsub_rn(float __x, float __y) { return __ocml_sub_rte_f32(__x, __y); }
|
|
273
|
+
__DEVICE__
|
|
274
|
+
float __fsub_ru(float __x, float __y) { return __ocml_sub_rtp_f32(__x, __y); }
|
|
275
|
+
__DEVICE__
|
|
276
|
+
float __fsub_rz(float __x, float __y) { return __ocml_sub_rtz_f32(__x, __y); }
|
|
277
|
+
#else
|
|
278
|
+
__DEVICE__
|
|
279
|
+
float __fsub_rn(float __x, float __y) { return __x - __y; }
|
|
280
|
+
#endif
|
|
281
|
+
|
|
282
|
+
__DEVICE__
|
|
283
|
+
float __log10f(float __x) { return __builtin_log10f(__x); }
|
|
284
|
+
|
|
285
|
+
__DEVICE__
|
|
286
|
+
float __log2f(float __x) { return __builtin_amdgcn_logf(__x); }
|
|
287
|
+
|
|
288
|
+
__DEVICE__
|
|
289
|
+
float __logf(float __x) { return __builtin_logf(__x); }
|
|
290
|
+
|
|
291
|
+
__DEVICE__
|
|
292
|
+
float __powf(float __x, float __y) { return __ocml_pow_f32(__x, __y); }
|
|
293
|
+
|
|
294
|
+
__DEVICE__
|
|
295
|
+
float __saturatef(float __x) { return (__x < 0) ? 0 : ((__x > 1) ? 1 : __x); }
|
|
296
|
+
|
|
297
|
+
__DEVICE__
|
|
298
|
+
void __sincosf(float __x, float *__sinptr, float *__cosptr) {
|
|
299
|
+
*__sinptr = __ocml_native_sin_f32(__x);
|
|
300
|
+
*__cosptr = __ocml_native_cos_f32(__x);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
__DEVICE__
|
|
304
|
+
float __sinf(float __x) { return __ocml_native_sin_f32(__x); }
|
|
305
|
+
|
|
306
|
+
__DEVICE__
|
|
307
|
+
float __tanf(float __x) {
|
|
308
|
+
return __sinf(__x) * __builtin_amdgcn_rcpf(__cosf(__x));
|
|
309
|
+
}
|
|
310
|
+
// END INTRINSICS
|
|
311
|
+
|
|
142
312
|
#if defined(__cplusplus)
|
|
143
313
|
__DEVICE__
|
|
144
314
|
int abs(int __x) {
|
|
145
|
-
|
|
146
|
-
return (__x ^ __sgn) - __sgn;
|
|
315
|
+
return __builtin_abs(__x);
|
|
147
316
|
}
|
|
148
317
|
__DEVICE__
|
|
149
318
|
long labs(long __x) {
|
|
150
|
-
|
|
151
|
-
return (__x ^ __sgn) - __sgn;
|
|
319
|
+
return __builtin_labs(__x);
|
|
152
320
|
}
|
|
153
321
|
__DEVICE__
|
|
154
322
|
long long llabs(long long __x) {
|
|
155
|
-
|
|
156
|
-
return (__x ^ __sgn) - __sgn;
|
|
323
|
+
return __builtin_llabs(__x);
|
|
157
324
|
}
|
|
158
325
|
#endif
|
|
159
326
|
|
|
@@ -182,13 +349,13 @@ __DEVICE__
|
|
|
182
349
|
float cbrtf(float __x) { return __ocml_cbrt_f32(__x); }
|
|
183
350
|
|
|
184
351
|
__DEVICE__
|
|
185
|
-
float ceilf(float __x) { return
|
|
352
|
+
float ceilf(float __x) { return __builtin_ceilf(__x); }
|
|
186
353
|
|
|
187
354
|
__DEVICE__
|
|
188
|
-
float copysignf(float __x, float __y) { return
|
|
355
|
+
float copysignf(float __x, float __y) { return __builtin_copysignf(__x, __y); }
|
|
189
356
|
|
|
190
357
|
__DEVICE__
|
|
191
|
-
float cosf(float __x) { return __ocml_cos_f32(__x); }
|
|
358
|
+
float cosf(float __x) { return __FAST_OR_SLOW(__cosf, __ocml_cos_f32)(__x); }
|
|
192
359
|
|
|
193
360
|
__DEVICE__
|
|
194
361
|
float coshf(float __x) { return __ocml_cosh_f32(__x); }
|
|
@@ -221,10 +388,10 @@ __DEVICE__
|
|
|
221
388
|
float exp10f(float __x) { return __ocml_exp10_f32(__x); }
|
|
222
389
|
|
|
223
390
|
__DEVICE__
|
|
224
|
-
float exp2f(float __x) { return
|
|
391
|
+
float exp2f(float __x) { return __builtin_exp2f(__x); }
|
|
225
392
|
|
|
226
393
|
__DEVICE__
|
|
227
|
-
float expf(float __x) { return
|
|
394
|
+
float expf(float __x) { return __builtin_expf(__x); }
|
|
228
395
|
|
|
229
396
|
__DEVICE__
|
|
230
397
|
float expm1f(float __x) { return __ocml_expm1_f32(__x); }
|
|
@@ -239,33 +406,25 @@ __DEVICE__
|
|
|
239
406
|
float fdividef(float __x, float __y) { return __x / __y; }
|
|
240
407
|
|
|
241
408
|
__DEVICE__
|
|
242
|
-
float floorf(float __x) { return
|
|
409
|
+
float floorf(float __x) { return __builtin_floorf(__x); }
|
|
243
410
|
|
|
244
411
|
__DEVICE__
|
|
245
412
|
float fmaf(float __x, float __y, float __z) {
|
|
246
|
-
return
|
|
413
|
+
return __builtin_fmaf(__x, __y, __z);
|
|
247
414
|
}
|
|
248
415
|
|
|
249
416
|
__DEVICE__
|
|
250
|
-
float fmaxf(float __x, float __y) { return
|
|
417
|
+
float fmaxf(float __x, float __y) { return __builtin_fmaxf(__x, __y); }
|
|
251
418
|
|
|
252
419
|
__DEVICE__
|
|
253
|
-
float fminf(float __x, float __y) { return
|
|
420
|
+
float fminf(float __x, float __y) { return __builtin_fminf(__x, __y); }
|
|
254
421
|
|
|
255
422
|
__DEVICE__
|
|
256
423
|
float fmodf(float __x, float __y) { return __ocml_fmod_f32(__x, __y); }
|
|
257
424
|
|
|
258
425
|
__DEVICE__
|
|
259
426
|
float frexpf(float __x, int *__nptr) {
|
|
260
|
-
|
|
261
|
-
#ifdef __OPENMP_AMDGCN__
|
|
262
|
-
#pragma omp allocate(__tmp) allocator(omp_thread_mem_alloc)
|
|
263
|
-
#endif
|
|
264
|
-
float __r =
|
|
265
|
-
__ocml_frexp_f32(__x, (__attribute__((address_space(5))) int *)&__tmp);
|
|
266
|
-
*__nptr = __tmp;
|
|
267
|
-
|
|
268
|
-
return __r;
|
|
427
|
+
return __builtin_frexpf(__x, __nptr);
|
|
269
428
|
}
|
|
270
429
|
|
|
271
430
|
__DEVICE__
|
|
@@ -275,13 +434,13 @@ __DEVICE__
|
|
|
275
434
|
int ilogbf(float __x) { return __ocml_ilogb_f32(__x); }
|
|
276
435
|
|
|
277
436
|
__DEVICE__
|
|
278
|
-
__RETURN_TYPE __finitef(float __x) { return
|
|
437
|
+
__RETURN_TYPE __finitef(float __x) { return __builtin_isfinite(__x); }
|
|
279
438
|
|
|
280
439
|
__DEVICE__
|
|
281
|
-
__RETURN_TYPE __isinff(float __x) { return
|
|
440
|
+
__RETURN_TYPE __isinff(float __x) { return __builtin_isinf(__x); }
|
|
282
441
|
|
|
283
442
|
__DEVICE__
|
|
284
|
-
__RETURN_TYPE __isnanf(float __x) { return
|
|
443
|
+
__RETURN_TYPE __isnanf(float __x) { return __builtin_isnan(__x); }
|
|
285
444
|
|
|
286
445
|
__DEVICE__
|
|
287
446
|
float j0f(float __x) { return __ocml_j0_f32(__x); }
|
|
@@ -311,37 +470,37 @@ float jnf(int __n, float __x) { // TODO: we could use Ahmes multiplication
|
|
|
311
470
|
}
|
|
312
471
|
|
|
313
472
|
__DEVICE__
|
|
314
|
-
float ldexpf(float __x, int __e) { return
|
|
473
|
+
float ldexpf(float __x, int __e) { return __builtin_amdgcn_ldexpf(__x, __e); }
|
|
315
474
|
|
|
316
475
|
__DEVICE__
|
|
317
476
|
float lgammaf(float __x) { return __ocml_lgamma_f32(__x); }
|
|
318
477
|
|
|
319
478
|
__DEVICE__
|
|
320
|
-
long long int llrintf(float __x) { return
|
|
479
|
+
long long int llrintf(float __x) { return __builtin_rintf(__x); }
|
|
321
480
|
|
|
322
481
|
__DEVICE__
|
|
323
|
-
long long int llroundf(float __x) { return
|
|
482
|
+
long long int llroundf(float __x) { return __builtin_roundf(__x); }
|
|
324
483
|
|
|
325
484
|
__DEVICE__
|
|
326
|
-
float log10f(float __x) { return
|
|
485
|
+
float log10f(float __x) { return __builtin_log10f(__x); }
|
|
327
486
|
|
|
328
487
|
__DEVICE__
|
|
329
488
|
float log1pf(float __x) { return __ocml_log1p_f32(__x); }
|
|
330
489
|
|
|
331
490
|
__DEVICE__
|
|
332
|
-
float log2f(float __x) { return __ocml_log2_f32(__x); }
|
|
491
|
+
float log2f(float __x) { return __FAST_OR_SLOW(__log2f, __ocml_log2_f32)(__x); }
|
|
333
492
|
|
|
334
493
|
__DEVICE__
|
|
335
494
|
float logbf(float __x) { return __ocml_logb_f32(__x); }
|
|
336
495
|
|
|
337
496
|
__DEVICE__
|
|
338
|
-
float logf(float __x) { return __ocml_log_f32(__x); }
|
|
497
|
+
float logf(float __x) { return __FAST_OR_SLOW(__logf, __ocml_log_f32)(__x); }
|
|
339
498
|
|
|
340
499
|
__DEVICE__
|
|
341
|
-
long int lrintf(float __x) { return
|
|
500
|
+
long int lrintf(float __x) { return __builtin_rintf(__x); }
|
|
342
501
|
|
|
343
502
|
__DEVICE__
|
|
344
|
-
long int lroundf(float __x) { return
|
|
503
|
+
long int lroundf(float __x) { return __builtin_roundf(__x); }
|
|
345
504
|
|
|
346
505
|
__DEVICE__
|
|
347
506
|
float modff(float __x, float *__iptr) {
|
|
@@ -377,7 +536,7 @@ float nanf(const char *__tagp __attribute__((nonnull))) {
|
|
|
377
536
|
}
|
|
378
537
|
|
|
379
538
|
__DEVICE__
|
|
380
|
-
float nearbyintf(float __x) { return
|
|
539
|
+
float nearbyintf(float __x) { return __builtin_nearbyintf(__x); }
|
|
381
540
|
|
|
382
541
|
__DEVICE__
|
|
383
542
|
float nextafterf(float __x, float __y) {
|
|
@@ -409,7 +568,7 @@ float normf(int __dim,
|
|
|
409
568
|
++__a;
|
|
410
569
|
}
|
|
411
570
|
|
|
412
|
-
return
|
|
571
|
+
return __builtin_sqrtf(__r);
|
|
413
572
|
}
|
|
414
573
|
|
|
415
574
|
__DEVICE__
|
|
@@ -443,7 +602,7 @@ __DEVICE__
|
|
|
443
602
|
float rhypotf(float __x, float __y) { return __ocml_rhypot_f32(__x, __y); }
|
|
444
603
|
|
|
445
604
|
__DEVICE__
|
|
446
|
-
float rintf(float __x) { return
|
|
605
|
+
float rintf(float __x) { return __builtin_rintf(__x); }
|
|
447
606
|
|
|
448
607
|
__DEVICE__
|
|
449
608
|
float rnorm3df(float __x, float __y, float __z) {
|
|
@@ -468,22 +627,22 @@ float rnormf(int __dim,
|
|
|
468
627
|
}
|
|
469
628
|
|
|
470
629
|
__DEVICE__
|
|
471
|
-
float roundf(float __x) { return
|
|
630
|
+
float roundf(float __x) { return __builtin_roundf(__x); }
|
|
472
631
|
|
|
473
632
|
__DEVICE__
|
|
474
633
|
float rsqrtf(float __x) { return __ocml_rsqrt_f32(__x); }
|
|
475
634
|
|
|
476
635
|
__DEVICE__
|
|
477
636
|
float scalblnf(float __x, long int __n) {
|
|
478
|
-
return (__n < INT_MAX) ?
|
|
637
|
+
return (__n < INT_MAX) ? __builtin_amdgcn_ldexpf(__x, __n)
|
|
479
638
|
: __ocml_scalb_f32(__x, __n);
|
|
480
639
|
}
|
|
481
640
|
|
|
482
641
|
__DEVICE__
|
|
483
|
-
float scalbnf(float __x, int __n) { return
|
|
642
|
+
float scalbnf(float __x, int __n) { return __builtin_amdgcn_ldexpf(__x, __n); }
|
|
484
643
|
|
|
485
644
|
__DEVICE__
|
|
486
|
-
__RETURN_TYPE __signbitf(float __x) { return
|
|
645
|
+
__RETURN_TYPE __signbitf(float __x) { return __builtin_signbitf(__x); }
|
|
487
646
|
|
|
488
647
|
__DEVICE__
|
|
489
648
|
void sincosf(float __x, float *__sinptr, float *__cosptr) {
|
|
@@ -491,9 +650,13 @@ void sincosf(float __x, float *__sinptr, float *__cosptr) {
|
|
|
491
650
|
#ifdef __OPENMP_AMDGCN__
|
|
492
651
|
#pragma omp allocate(__tmp) allocator(omp_thread_mem_alloc)
|
|
493
652
|
#endif
|
|
653
|
+
#ifdef __CLANG_CUDA_APPROX_TRANSCENDENTALS__
|
|
654
|
+
__sincosf(__x, __sinptr, __cosptr);
|
|
655
|
+
#else
|
|
494
656
|
*__sinptr =
|
|
495
657
|
__ocml_sincos_f32(__x, (__attribute__((address_space(5))) float *)&__tmp);
|
|
496
658
|
*__cosptr = __tmp;
|
|
659
|
+
#endif
|
|
497
660
|
}
|
|
498
661
|
|
|
499
662
|
__DEVICE__
|
|
@@ -508,7 +671,7 @@ void sincospif(float __x, float *__sinptr, float *__cosptr) {
|
|
|
508
671
|
}
|
|
509
672
|
|
|
510
673
|
__DEVICE__
|
|
511
|
-
float sinf(float __x) { return __ocml_sin_f32(__x); }
|
|
674
|
+
float sinf(float __x) { return __FAST_OR_SLOW(__sinf, __ocml_sin_f32)(__x); }
|
|
512
675
|
|
|
513
676
|
__DEVICE__
|
|
514
677
|
float sinhf(float __x) { return __ocml_sinh_f32(__x); }
|
|
@@ -517,7 +680,7 @@ __DEVICE__
|
|
|
517
680
|
float sinpif(float __x) { return __ocml_sinpi_f32(__x); }
|
|
518
681
|
|
|
519
682
|
__DEVICE__
|
|
520
|
-
float sqrtf(float __x) { return
|
|
683
|
+
float sqrtf(float __x) { return __builtin_sqrtf(__x); }
|
|
521
684
|
|
|
522
685
|
__DEVICE__
|
|
523
686
|
float tanf(float __x) { return __ocml_tan_f32(__x); }
|
|
@@ -529,7 +692,7 @@ __DEVICE__
|
|
|
529
692
|
float tgammaf(float __x) { return __ocml_tgamma_f32(__x); }
|
|
530
693
|
|
|
531
694
|
__DEVICE__
|
|
532
|
-
float truncf(float __x) { return
|
|
695
|
+
float truncf(float __x) { return __builtin_truncf(__x); }
|
|
533
696
|
|
|
534
697
|
__DEVICE__
|
|
535
698
|
float y0f(float __x) { return __ocml_y0_f32(__x); }
|
|
@@ -559,158 +722,7 @@ float ynf(int __n, float __x) { // TODO: we could use Ahmes multiplication
|
|
|
559
722
|
return __x1;
|
|
560
723
|
}
|
|
561
724
|
|
|
562
|
-
// BEGIN INTRINSICS
|
|
563
|
-
|
|
564
|
-
__DEVICE__
|
|
565
|
-
float __cosf(float __x) { return __ocml_native_cos_f32(__x); }
|
|
566
|
-
|
|
567
|
-
__DEVICE__
|
|
568
|
-
float __exp10f(float __x) { return __ocml_native_exp10_f32(__x); }
|
|
569
|
-
|
|
570
|
-
__DEVICE__
|
|
571
|
-
float __expf(float __x) { return __ocml_native_exp_f32(__x); }
|
|
572
|
-
|
|
573
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
574
|
-
__DEVICE__
|
|
575
|
-
float __fadd_rd(float __x, float __y) { return __ocml_add_rtn_f32(__x, __y); }
|
|
576
|
-
__DEVICE__
|
|
577
|
-
float __fadd_rn(float __x, float __y) { return __ocml_add_rte_f32(__x, __y); }
|
|
578
|
-
__DEVICE__
|
|
579
|
-
float __fadd_ru(float __x, float __y) { return __ocml_add_rtp_f32(__x, __y); }
|
|
580
|
-
__DEVICE__
|
|
581
|
-
float __fadd_rz(float __x, float __y) { return __ocml_add_rtz_f32(__x, __y); }
|
|
582
|
-
#else
|
|
583
|
-
__DEVICE__
|
|
584
|
-
float __fadd_rn(float __x, float __y) { return __x + __y; }
|
|
585
|
-
#endif
|
|
586
|
-
|
|
587
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
588
|
-
__DEVICE__
|
|
589
|
-
float __fdiv_rd(float __x, float __y) { return __ocml_div_rtn_f32(__x, __y); }
|
|
590
|
-
__DEVICE__
|
|
591
|
-
float __fdiv_rn(float __x, float __y) { return __ocml_div_rte_f32(__x, __y); }
|
|
592
|
-
__DEVICE__
|
|
593
|
-
float __fdiv_ru(float __x, float __y) { return __ocml_div_rtp_f32(__x, __y); }
|
|
594
|
-
__DEVICE__
|
|
595
|
-
float __fdiv_rz(float __x, float __y) { return __ocml_div_rtz_f32(__x, __y); }
|
|
596
|
-
#else
|
|
597
|
-
__DEVICE__
|
|
598
|
-
float __fdiv_rn(float __x, float __y) { return __x / __y; }
|
|
599
|
-
#endif
|
|
600
|
-
|
|
601
|
-
__DEVICE__
|
|
602
|
-
float __fdividef(float __x, float __y) { return __x / __y; }
|
|
603
|
-
|
|
604
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
605
|
-
__DEVICE__
|
|
606
|
-
float __fmaf_rd(float __x, float __y, float __z) {
|
|
607
|
-
return __ocml_fma_rtn_f32(__x, __y, __z);
|
|
608
|
-
}
|
|
609
|
-
__DEVICE__
|
|
610
|
-
float __fmaf_rn(float __x, float __y, float __z) {
|
|
611
|
-
return __ocml_fma_rte_f32(__x, __y, __z);
|
|
612
|
-
}
|
|
613
|
-
__DEVICE__
|
|
614
|
-
float __fmaf_ru(float __x, float __y, float __z) {
|
|
615
|
-
return __ocml_fma_rtp_f32(__x, __y, __z);
|
|
616
|
-
}
|
|
617
|
-
__DEVICE__
|
|
618
|
-
float __fmaf_rz(float __x, float __y, float __z) {
|
|
619
|
-
return __ocml_fma_rtz_f32(__x, __y, __z);
|
|
620
|
-
}
|
|
621
|
-
#else
|
|
622
|
-
__DEVICE__
|
|
623
|
-
float __fmaf_rn(float __x, float __y, float __z) {
|
|
624
|
-
return __ocml_fma_f32(__x, __y, __z);
|
|
625
|
-
}
|
|
626
|
-
#endif
|
|
627
|
-
|
|
628
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
629
|
-
__DEVICE__
|
|
630
|
-
float __fmul_rd(float __x, float __y) { return __ocml_mul_rtn_f32(__x, __y); }
|
|
631
|
-
__DEVICE__
|
|
632
|
-
float __fmul_rn(float __x, float __y) { return __ocml_mul_rte_f32(__x, __y); }
|
|
633
|
-
__DEVICE__
|
|
634
|
-
float __fmul_ru(float __x, float __y) { return __ocml_mul_rtp_f32(__x, __y); }
|
|
635
|
-
__DEVICE__
|
|
636
|
-
float __fmul_rz(float __x, float __y) { return __ocml_mul_rtz_f32(__x, __y); }
|
|
637
|
-
#else
|
|
638
|
-
__DEVICE__
|
|
639
|
-
float __fmul_rn(float __x, float __y) { return __x * __y; }
|
|
640
|
-
#endif
|
|
641
|
-
|
|
642
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
643
|
-
__DEVICE__
|
|
644
|
-
float __frcp_rd(float __x) { return __ocml_div_rtn_f32(1.0f, __x); }
|
|
645
|
-
__DEVICE__
|
|
646
|
-
float __frcp_rn(float __x) { return __ocml_div_rte_f32(1.0f, __x); }
|
|
647
|
-
__DEVICE__
|
|
648
|
-
float __frcp_ru(float __x) { return __ocml_div_rtp_f32(1.0f, __x); }
|
|
649
|
-
__DEVICE__
|
|
650
|
-
float __frcp_rz(float __x) { return __ocml_div_rtz_f32(1.0f, __x); }
|
|
651
|
-
#else
|
|
652
|
-
__DEVICE__
|
|
653
|
-
float __frcp_rn(float __x) { return 1.0f / __x; }
|
|
654
|
-
#endif
|
|
655
|
-
|
|
656
|
-
__DEVICE__
|
|
657
|
-
float __frsqrt_rn(float __x) { return __llvm_amdgcn_rsq_f32(__x); }
|
|
658
|
-
|
|
659
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
660
|
-
__DEVICE__
|
|
661
|
-
float __fsqrt_rd(float __x) { return __ocml_sqrt_rtn_f32(__x); }
|
|
662
|
-
__DEVICE__
|
|
663
|
-
float __fsqrt_rn(float __x) { return __ocml_sqrt_rte_f32(__x); }
|
|
664
|
-
__DEVICE__
|
|
665
|
-
float __fsqrt_ru(float __x) { return __ocml_sqrt_rtp_f32(__x); }
|
|
666
|
-
__DEVICE__
|
|
667
|
-
float __fsqrt_rz(float __x) { return __ocml_sqrt_rtz_f32(__x); }
|
|
668
|
-
#else
|
|
669
|
-
__DEVICE__
|
|
670
|
-
float __fsqrt_rn(float __x) { return __ocml_native_sqrt_f32(__x); }
|
|
671
|
-
#endif
|
|
672
|
-
|
|
673
|
-
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
674
|
-
__DEVICE__
|
|
675
|
-
float __fsub_rd(float __x, float __y) { return __ocml_sub_rtn_f32(__x, __y); }
|
|
676
|
-
__DEVICE__
|
|
677
|
-
float __fsub_rn(float __x, float __y) { return __ocml_sub_rte_f32(__x, __y); }
|
|
678
|
-
__DEVICE__
|
|
679
|
-
float __fsub_ru(float __x, float __y) { return __ocml_sub_rtp_f32(__x, __y); }
|
|
680
|
-
__DEVICE__
|
|
681
|
-
float __fsub_rz(float __x, float __y) { return __ocml_sub_rtz_f32(__x, __y); }
|
|
682
|
-
#else
|
|
683
|
-
__DEVICE__
|
|
684
|
-
float __fsub_rn(float __x, float __y) { return __x - __y; }
|
|
685
|
-
#endif
|
|
686
|
-
|
|
687
|
-
__DEVICE__
|
|
688
|
-
float __log10f(float __x) { return __ocml_native_log10_f32(__x); }
|
|
689
|
-
|
|
690
|
-
__DEVICE__
|
|
691
|
-
float __log2f(float __x) { return __ocml_native_log2_f32(__x); }
|
|
692
|
-
|
|
693
|
-
__DEVICE__
|
|
694
|
-
float __logf(float __x) { return __ocml_native_log_f32(__x); }
|
|
695
|
-
|
|
696
|
-
__DEVICE__
|
|
697
|
-
float __powf(float __x, float __y) { return __ocml_pow_f32(__x, __y); }
|
|
698
|
-
|
|
699
|
-
__DEVICE__
|
|
700
|
-
float __saturatef(float __x) { return (__x < 0) ? 0 : ((__x > 1) ? 1 : __x); }
|
|
701
|
-
|
|
702
|
-
__DEVICE__
|
|
703
|
-
void __sincosf(float __x, float *__sinptr, float *__cosptr) {
|
|
704
|
-
*__sinptr = __ocml_native_sin_f32(__x);
|
|
705
|
-
*__cosptr = __ocml_native_cos_f32(__x);
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
__DEVICE__
|
|
709
|
-
float __sinf(float __x) { return __ocml_native_sin_f32(__x); }
|
|
710
725
|
|
|
711
|
-
__DEVICE__
|
|
712
|
-
float __tanf(float __x) { return __ocml_tan_f32(__x); }
|
|
713
|
-
// END INTRINSICS
|
|
714
726
|
// END FLOAT
|
|
715
727
|
|
|
716
728
|
// BEGIN DOUBLE
|
|
@@ -739,11 +751,11 @@ __DEVICE__
|
|
|
739
751
|
double cbrt(double __x) { return __ocml_cbrt_f64(__x); }
|
|
740
752
|
|
|
741
753
|
__DEVICE__
|
|
742
|
-
double ceil(double __x) { return
|
|
754
|
+
double ceil(double __x) { return __builtin_ceil(__x); }
|
|
743
755
|
|
|
744
756
|
__DEVICE__
|
|
745
757
|
double copysign(double __x, double __y) {
|
|
746
|
-
return
|
|
758
|
+
return __builtin_copysign(__x, __y);
|
|
747
759
|
}
|
|
748
760
|
|
|
749
761
|
__DEVICE__
|
|
@@ -795,32 +807,25 @@ __DEVICE__
|
|
|
795
807
|
double fdim(double __x, double __y) { return __ocml_fdim_f64(__x, __y); }
|
|
796
808
|
|
|
797
809
|
__DEVICE__
|
|
798
|
-
double floor(double __x) { return
|
|
810
|
+
double floor(double __x) { return __builtin_floor(__x); }
|
|
799
811
|
|
|
800
812
|
__DEVICE__
|
|
801
813
|
double fma(double __x, double __y, double __z) {
|
|
802
|
-
return
|
|
814
|
+
return __builtin_fma(__x, __y, __z);
|
|
803
815
|
}
|
|
804
816
|
|
|
805
817
|
__DEVICE__
|
|
806
|
-
double fmax(double __x, double __y) { return
|
|
818
|
+
double fmax(double __x, double __y) { return __builtin_fmax(__x, __y); }
|
|
807
819
|
|
|
808
820
|
__DEVICE__
|
|
809
|
-
double fmin(double __x, double __y) { return
|
|
821
|
+
double fmin(double __x, double __y) { return __builtin_fmin(__x, __y); }
|
|
810
822
|
|
|
811
823
|
__DEVICE__
|
|
812
824
|
double fmod(double __x, double __y) { return __ocml_fmod_f64(__x, __y); }
|
|
813
825
|
|
|
814
826
|
__DEVICE__
|
|
815
827
|
double frexp(double __x, int *__nptr) {
|
|
816
|
-
|
|
817
|
-
#ifdef __OPENMP_AMDGCN__
|
|
818
|
-
#pragma omp allocate(__tmp) allocator(omp_thread_mem_alloc)
|
|
819
|
-
#endif
|
|
820
|
-
double __r =
|
|
821
|
-
__ocml_frexp_f64(__x, (__attribute__((address_space(5))) int *)&__tmp);
|
|
822
|
-
*__nptr = __tmp;
|
|
823
|
-
return __r;
|
|
828
|
+
return __builtin_frexp(__x, __nptr);
|
|
824
829
|
}
|
|
825
830
|
|
|
826
831
|
__DEVICE__
|
|
@@ -830,13 +835,13 @@ __DEVICE__
|
|
|
830
835
|
int ilogb(double __x) { return __ocml_ilogb_f64(__x); }
|
|
831
836
|
|
|
832
837
|
__DEVICE__
|
|
833
|
-
__RETURN_TYPE __finite(double __x) { return
|
|
838
|
+
__RETURN_TYPE __finite(double __x) { return __builtin_isfinite(__x); }
|
|
834
839
|
|
|
835
840
|
__DEVICE__
|
|
836
|
-
__RETURN_TYPE __isinf(double __x) { return
|
|
841
|
+
__RETURN_TYPE __isinf(double __x) { return __builtin_isinf(__x); }
|
|
837
842
|
|
|
838
843
|
__DEVICE__
|
|
839
|
-
__RETURN_TYPE __isnan(double __x) { return
|
|
844
|
+
__RETURN_TYPE __isnan(double __x) { return __builtin_isnan(__x); }
|
|
840
845
|
|
|
841
846
|
__DEVICE__
|
|
842
847
|
double j0(double __x) { return __ocml_j0_f64(__x); }
|
|
@@ -866,16 +871,16 @@ double jn(int __n, double __x) { // TODO: we could use Ahmes multiplication
|
|
|
866
871
|
}
|
|
867
872
|
|
|
868
873
|
__DEVICE__
|
|
869
|
-
double ldexp(double __x, int __e) { return
|
|
874
|
+
double ldexp(double __x, int __e) { return __builtin_amdgcn_ldexp(__x, __e); }
|
|
870
875
|
|
|
871
876
|
__DEVICE__
|
|
872
877
|
double lgamma(double __x) { return __ocml_lgamma_f64(__x); }
|
|
873
878
|
|
|
874
879
|
__DEVICE__
|
|
875
|
-
long long int llrint(double __x) { return
|
|
880
|
+
long long int llrint(double __x) { return __builtin_rint(__x); }
|
|
876
881
|
|
|
877
882
|
__DEVICE__
|
|
878
|
-
long long int llround(double __x) { return
|
|
883
|
+
long long int llround(double __x) { return __builtin_round(__x); }
|
|
879
884
|
|
|
880
885
|
__DEVICE__
|
|
881
886
|
double log(double __x) { return __ocml_log_f64(__x); }
|
|
@@ -893,10 +898,10 @@ __DEVICE__
|
|
|
893
898
|
double logb(double __x) { return __ocml_logb_f64(__x); }
|
|
894
899
|
|
|
895
900
|
__DEVICE__
|
|
896
|
-
long int lrint(double __x) { return
|
|
901
|
+
long int lrint(double __x) { return __builtin_rint(__x); }
|
|
897
902
|
|
|
898
903
|
__DEVICE__
|
|
899
|
-
long int lround(double __x) { return
|
|
904
|
+
long int lround(double __x) { return __builtin_round(__x); }
|
|
900
905
|
|
|
901
906
|
__DEVICE__
|
|
902
907
|
double modf(double __x, double *__iptr) {
|
|
@@ -940,7 +945,7 @@ double nan(const char *__tagp) {
|
|
|
940
945
|
}
|
|
941
946
|
|
|
942
947
|
__DEVICE__
|
|
943
|
-
double nearbyint(double __x) { return
|
|
948
|
+
double nearbyint(double __x) { return __builtin_nearbyint(__x); }
|
|
944
949
|
|
|
945
950
|
__DEVICE__
|
|
946
951
|
double nextafter(double __x, double __y) {
|
|
@@ -956,7 +961,7 @@ double norm(int __dim,
|
|
|
956
961
|
++__a;
|
|
957
962
|
}
|
|
958
963
|
|
|
959
|
-
return
|
|
964
|
+
return __builtin_sqrt(__r);
|
|
960
965
|
}
|
|
961
966
|
|
|
962
967
|
__DEVICE__
|
|
@@ -1006,7 +1011,7 @@ __DEVICE__
|
|
|
1006
1011
|
double rhypot(double __x, double __y) { return __ocml_rhypot_f64(__x, __y); }
|
|
1007
1012
|
|
|
1008
1013
|
__DEVICE__
|
|
1009
|
-
double rint(double __x) { return
|
|
1014
|
+
double rint(double __x) { return __builtin_rint(__x); }
|
|
1010
1015
|
|
|
1011
1016
|
__DEVICE__
|
|
1012
1017
|
double rnorm(int __dim,
|
|
@@ -1031,21 +1036,21 @@ double rnorm4d(double __x, double __y, double __z, double __w) {
|
|
|
1031
1036
|
}
|
|
1032
1037
|
|
|
1033
1038
|
__DEVICE__
|
|
1034
|
-
double round(double __x) { return
|
|
1039
|
+
double round(double __x) { return __builtin_round(__x); }
|
|
1035
1040
|
|
|
1036
1041
|
__DEVICE__
|
|
1037
1042
|
double rsqrt(double __x) { return __ocml_rsqrt_f64(__x); }
|
|
1038
1043
|
|
|
1039
1044
|
__DEVICE__
|
|
1040
1045
|
double scalbln(double __x, long int __n) {
|
|
1041
|
-
return (__n < INT_MAX) ?
|
|
1046
|
+
return (__n < INT_MAX) ? __builtin_amdgcn_ldexp(__x, __n)
|
|
1042
1047
|
: __ocml_scalb_f64(__x, __n);
|
|
1043
1048
|
}
|
|
1044
1049
|
__DEVICE__
|
|
1045
|
-
double scalbn(double __x, int __n) { return
|
|
1050
|
+
double scalbn(double __x, int __n) { return __builtin_amdgcn_ldexp(__x, __n); }
|
|
1046
1051
|
|
|
1047
1052
|
__DEVICE__
|
|
1048
|
-
__RETURN_TYPE __signbit(double __x) { return
|
|
1053
|
+
__RETURN_TYPE __signbit(double __x) { return __builtin_signbit(__x); }
|
|
1049
1054
|
|
|
1050
1055
|
__DEVICE__
|
|
1051
1056
|
double sin(double __x) { return __ocml_sin_f64(__x); }
|
|
@@ -1079,7 +1084,7 @@ __DEVICE__
|
|
|
1079
1084
|
double sinpi(double __x) { return __ocml_sinpi_f64(__x); }
|
|
1080
1085
|
|
|
1081
1086
|
__DEVICE__
|
|
1082
|
-
double sqrt(double __x) { return
|
|
1087
|
+
double sqrt(double __x) { return __builtin_sqrt(__x); }
|
|
1083
1088
|
|
|
1084
1089
|
__DEVICE__
|
|
1085
1090
|
double tan(double __x) { return __ocml_tan_f64(__x); }
|
|
@@ -1091,7 +1096,7 @@ __DEVICE__
|
|
|
1091
1096
|
double tgamma(double __x) { return __ocml_tgamma_f64(__x); }
|
|
1092
1097
|
|
|
1093
1098
|
__DEVICE__
|
|
1094
|
-
double trunc(double __x) { return
|
|
1099
|
+
double trunc(double __x) { return __builtin_trunc(__x); }
|
|
1095
1100
|
|
|
1096
1101
|
__DEVICE__
|
|
1097
1102
|
double y0(double __x) { return __ocml_y0_f64(__x); }
|
|
@@ -1213,7 +1218,7 @@ __DEVICE__
|
|
|
1213
1218
|
double __dsqrt_rz(double __x) { return __ocml_sqrt_rtz_f64(__x); }
|
|
1214
1219
|
#else
|
|
1215
1220
|
__DEVICE__
|
|
1216
|
-
double __dsqrt_rn(double __x) { return
|
|
1221
|
+
double __dsqrt_rn(double __x) { return __builtin_sqrt(__x); }
|
|
1217
1222
|
#endif
|
|
1218
1223
|
|
|
1219
1224
|
#if defined OCML_BASIC_ROUNDED_OPERATIONS
|
|
@@ -1258,7 +1263,7 @@ double __fma_rz(double __x, double __y, double __z) {
|
|
|
1258
1263
|
#else
|
|
1259
1264
|
__DEVICE__
|
|
1260
1265
|
double __fma_rn(double __x, double __y, double __z) {
|
|
1261
|
-
return
|
|
1266
|
+
return __builtin_fma(__x, __y, __z);
|
|
1262
1267
|
}
|
|
1263
1268
|
#endif
|
|
1264
1269
|
// END INTRINSICS
|
|
@@ -1290,29 +1295,30 @@ __DEVICE__ int max(int __arg1, int __arg2) {
|
|
|
1290
1295
|
}
|
|
1291
1296
|
|
|
1292
1297
|
__DEVICE__
|
|
1293
|
-
float max(float __x, float __y) { return
|
|
1298
|
+
float max(float __x, float __y) { return __builtin_fmaxf(__x, __y); }
|
|
1294
1299
|
|
|
1295
1300
|
__DEVICE__
|
|
1296
|
-
double max(double __x, double __y) { return
|
|
1301
|
+
double max(double __x, double __y) { return __builtin_fmax(__x, __y); }
|
|
1297
1302
|
|
|
1298
1303
|
__DEVICE__
|
|
1299
|
-
float min(float __x, float __y) { return
|
|
1304
|
+
float min(float __x, float __y) { return __builtin_fminf(__x, __y); }
|
|
1300
1305
|
|
|
1301
1306
|
__DEVICE__
|
|
1302
|
-
double min(double __x, double __y) { return
|
|
1307
|
+
double min(double __x, double __y) { return __builtin_fmin(__x, __y); }
|
|
1303
1308
|
|
|
1304
1309
|
#if !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__)
|
|
1305
1310
|
__host__ inline static int min(int __arg1, int __arg2) {
|
|
1306
|
-
return
|
|
1311
|
+
return __arg1 < __arg2 ? __arg1 : __arg2;
|
|
1307
1312
|
}
|
|
1308
1313
|
|
|
1309
1314
|
__host__ inline static int max(int __arg1, int __arg2) {
|
|
1310
|
-
return
|
|
1315
|
+
return __arg1 > __arg2 ? __arg1 : __arg2;
|
|
1311
1316
|
}
|
|
1312
1317
|
#endif // !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__)
|
|
1313
1318
|
#endif
|
|
1314
1319
|
|
|
1315
1320
|
#pragma pop_macro("__DEVICE__")
|
|
1316
1321
|
#pragma pop_macro("__RETURN_TYPE")
|
|
1322
|
+
#pragma pop_macro("__FAST_OR_SLOW")
|
|
1317
1323
|
|
|
1318
1324
|
#endif // __CLANG_HIP_MATH_H__
|