minimize intrin

This commit is contained in:
krzosa
2024-12-30 21:53:22 +01:00
parent ea6cba3946
commit 574c265073
2 changed files with 20 additions and 43 deletions

View File

@@ -1,58 +1,30 @@
fn void memory_copy(void *dst, void *src, usize n) {
#if PLATFORM_CLANG
__builtin_memcpy(dst, src, n);
#else
memcpy(dst, src, n);
#endif
IF_PLATFORM_CLANG_ELSE(__builtin_memcpy(dst, src, n), memcpy(dst, src, n));
}
fn void memory_move(void *dest, const void *src, usize n) {
#if PLATFORM_CLANG
__builtin_memmove(dest, src, n);
#else
memmove(dest, src, n);
#endif
IF_PLATFORM_CLANG_ELSE(__builtin_memmove(dest, src, n), memmove(dest, src, n));
}
fn void memory_set(void *dst, i32 c, usize size) {
#if PLATFORM_CLANG
__builtin_memset(dst, c, size);
#else
memset(dst, c, size);
#endif
IF_PLATFORM_CLANG_ELSE(__builtin_memset(dst, c, size), memset(dst, c, size));
}
fn void memory_zero(void *dst, usize size) {
memory_set(dst, 0, size);
}
#if PLATFORM_CLANG
f32 f32_sqrt(f32 x) { return __builtin_sqrtf(x); }
f64 f64_sqrt(f64 x) { return __builtin_sqrt(x); }
f32 f32_ceil(f32 x) { return __builtin_ceilf(x); }
f64 f64_ceil(f64 x) { return __builtin_ceil(x); }
f32 f32_floor(f32 x) { return __builtin_floorf(x); }
f64 f64_floor(f64 x) { return __builtin_floor(x); }
f32 f32_abs(f32 x) { return __builtin_fabsf(x); }
f64 f64_abs(f64 x) { return __builtin_fabs(x); }
f32 f32_round(f32 x) { return __builtin_roundf(x); }
f64 f64_round(f64 x) { return __builtin_round(x); }
f64 f64_mod(f64 a, f64 b) { return __builtin_fmod(a, b); }
f32 f32_mod(f32 a, f32 b) { return __builtin_fmodf(a, b); }
#else
fn f32 f32_sqrt(f32 x) { return sqrtf(x); }
fn f64 f64_sqrt(f64 x) { return sqrt(x); }
fn f32 f32_ceil(f32 x) { return ceilf(x); }
fn f64 f64_ceil(f64 x) { return ceil(x); }
fn f32 f32_floor(f32 x) { return floorf(x); }
fn f64 f64_floor(f64 x) { return floor(x); }
fn f32 f32_abs(f32 x) { return fabsf(x); }
fn f64 f64_abs(f64 x) { return fabs(x); }
fn f32 f32_round(f32 x) { return roundf(x); }
fn f64 f64_round(f64 x) { return round(x); }
fn f64 f64_mod(f64 a, f64 b) { return fmod(a, b); }
fn f32 f32_mod(f32 a, f32 b) { return fmodf(a, b); }
#endif
f32 f32_sqrt(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_sqrtf(x), sqrtf(x)); }
f64 f64_sqrt(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_sqrt(x), sqrt(x)); }
f32 f32_ceil(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_ceilf(x), ceilf(x)); }
f64 f64_ceil(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_ceil(x), ceil(x)); }
f32 f32_floor(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_floorf(x), floorf(x)); }
f64 f64_floor(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_floor(x), floor(x)); }
f32 f32_abs(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_fabsf(x), fabsf(x)); }
f64 f64_abs(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_fabs(x), fabs(x)); }
f32 f32_round(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_roundf(x), roundf(x)); }
f64 f64_round(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_round(x), round(x)); }
f64 f64_mod(f64 a, f64 b) { return IF_PLATFORM_CLANG_ELSE(__builtin_fmod(a, b), fmod(a, b)); }
f32 f32_mod(f32 a, f32 b) { return IF_PLATFORM_CLANG_ELSE(__builtin_fmodf(a, b), fmodf(a, b)); }

View File

@@ -76,6 +76,11 @@
#define SWITCH_PLATFORM_WINDOWS_WASM_ELSE(WINDOWS, WASM, ELSE) ELSE
#endif
#if PLATFORM_CLANG
#define IF_PLATFORM_CLANG_ELSE(IF, ELSE) IF
#else
#define IF_PLATFORM_CLANG_ELSE(IF, ELSE) ELSE
#endif
#if PLATFORM_WINDOWS
#define IF_PLATFORM_WINDOWS(x) x