simd128: enable in headers

This commit is contained in:
myfreeer
2023-03-06 17:07:45 +08:00
parent 6b7a63953c
commit 71c585b159
4 changed files with 76 additions and 1 deletions

View File

@@ -47,6 +47,8 @@ void
glm_vec4_broadcast(float val, vec4 d) {
#if defined( __SSE__ ) || defined( __SSE2__ )
glmm_store(d, _mm_set1_ps(val));
#elif defined(__wasm__) && defined(__wasm_simd128__)
glmm_store(d, wasm_f32x4_splat(val));
#else
d[0] = d[1] = d[2] = d[3] = val;
#endif
@@ -63,6 +65,8 @@ void
glm_vec4_fill(vec4 v, float val) {
#if defined( __SSE__ ) || defined( __SSE2__ )
glmm_store(v, _mm_set1_ps(val));
#elif defined(__wasm__) && defined(__wasm_simd128__)
glmm_store(v, wasm_f32x4_splat(val));
#else
v[0] = v[1] = v[2] = v[3] = val;
#endif
@@ -249,6 +253,8 @@ void
glm_vec4_abs(vec4 v, vec4 dest) {
#if defined( __SSE__ ) || defined( __SSE2__ )
glmm_store(dest, glmm_abs(glmm_load(v)));
#elif defined(__wasm__) && defined(__wasm_simd128__)
glmm_store(dest, glmm_abs(glmm_load(v)));
#elif defined(CGLM_NEON_FP)
vst1q_f32(dest, vabsq_f32(vld1q_f32(v)));
#else
@@ -286,6 +292,8 @@ float
glm_vec4_hadd(vec4 v) {
#if defined( __SSE__ ) || defined( __SSE2__ )
return glmm_hadd(glmm_load(v));
#elif defined(__wasm__) && defined(__wasm_simd128__)
return glmm_hadd(glmm_load(v));
#else
return v[0] + v[1] + v[2] + v[3];
#endif
@@ -302,6 +310,8 @@ void
glm_vec4_sqrt(vec4 v, vec4 dest) {
#if defined( __SSE__ ) || defined( __SSE2__ )
glmm_store(dest, _mm_sqrt_ps(glmm_load(v)));
#elif defined(__wasm__) && defined(__wasm_simd128__)
glmm_store(dest, wasm_f32x4_sqrt(glmm_load(v)));
#else
dest[0] = sqrtf(v[0]);
dest[1] = sqrtf(v[1]);