mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 01:00:46 +00:00
Merge pull request #361 from myfreeer/myfreeer-patch-4
wasm: prefer pmin/pmax
This commit is contained in:
@@ -649,7 +649,7 @@ glm_vec4_maxadd(vec4 a, vec4 b, vec4 dest) {
|
|||||||
#if defined(__wasm__) && defined(__wasm_simd128__)
|
#if defined(__wasm__) && defined(__wasm_simd128__)
|
||||||
glmm_store(dest, wasm_f32x4_add(
|
glmm_store(dest, wasm_f32x4_add(
|
||||||
glmm_load(dest),
|
glmm_load(dest),
|
||||||
wasm_f32x4_max(glmm_load(a), glmm_load(b))));
|
wasm_f32x4_pmax(glmm_load(a), glmm_load(b))));
|
||||||
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(dest, _mm_add_ps(glmm_load(dest),
|
glmm_store(dest, _mm_add_ps(glmm_load(dest),
|
||||||
_mm_max_ps(glmm_load(a),
|
_mm_max_ps(glmm_load(a),
|
||||||
@@ -681,7 +681,7 @@ glm_vec4_minadd(vec4 a, vec4 b, vec4 dest) {
|
|||||||
#if defined(__wasm__) && defined(__wasm_simd128__)
|
#if defined(__wasm__) && defined(__wasm_simd128__)
|
||||||
glmm_store(dest, wasm_f32x4_add(
|
glmm_store(dest, wasm_f32x4_add(
|
||||||
glmm_load(dest),
|
glmm_load(dest),
|
||||||
wasm_f32x4_min(glmm_load(a), glmm_load(b))));
|
wasm_f32x4_pmin(glmm_load(a), glmm_load(b))));
|
||||||
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(dest, _mm_add_ps(glmm_load(dest),
|
glmm_store(dest, _mm_add_ps(glmm_load(dest),
|
||||||
_mm_min_ps(glmm_load(a),
|
_mm_min_ps(glmm_load(a),
|
||||||
@@ -854,7 +854,7 @@ CGLM_INLINE
|
|||||||
void
|
void
|
||||||
glm_vec4_maxv(vec4 a, vec4 b, vec4 dest) {
|
glm_vec4_maxv(vec4 a, vec4 b, vec4 dest) {
|
||||||
#if defined(__wasm__) && defined(__wasm_simd128__)
|
#if defined(__wasm__) && defined(__wasm_simd128__)
|
||||||
glmm_store(dest, wasm_f32x4_max(glmm_load(a), glmm_load(b)));
|
glmm_store(dest, wasm_f32x4_pmax(glmm_load(a), glmm_load(b)));
|
||||||
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(dest, _mm_max_ps(glmm_load(a), glmm_load(b)));
|
glmm_store(dest, _mm_max_ps(glmm_load(a), glmm_load(b)));
|
||||||
#elif defined(CGLM_NEON_FP)
|
#elif defined(CGLM_NEON_FP)
|
||||||
@@ -878,7 +878,7 @@ CGLM_INLINE
|
|||||||
void
|
void
|
||||||
glm_vec4_minv(vec4 a, vec4 b, vec4 dest) {
|
glm_vec4_minv(vec4 a, vec4 b, vec4 dest) {
|
||||||
#if defined(__wasm__) && defined(__wasm_simd128__)
|
#if defined(__wasm__) && defined(__wasm_simd128__)
|
||||||
glmm_store(dest, wasm_f32x4_min(glmm_load(a), glmm_load(b)));
|
glmm_store(dest, wasm_f32x4_pmin(glmm_load(a), glmm_load(b)));
|
||||||
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(dest, _mm_min_ps(glmm_load(a), glmm_load(b)));
|
glmm_store(dest, _mm_min_ps(glmm_load(a), glmm_load(b)));
|
||||||
#elif defined(CGLM_NEON_FP)
|
#elif defined(CGLM_NEON_FP)
|
||||||
@@ -902,8 +902,8 @@ CGLM_INLINE
|
|||||||
void
|
void
|
||||||
glm_vec4_clamp(vec4 v, float minVal, float maxVal) {
|
glm_vec4_clamp(vec4 v, float minVal, float maxVal) {
|
||||||
#if defined(__wasm__) && defined(__wasm_simd128__)
|
#if defined(__wasm__) && defined(__wasm_simd128__)
|
||||||
glmm_store(v, wasm_f32x4_min(
|
glmm_store(v, wasm_f32x4_pmin(
|
||||||
wasm_f32x4_max(glmm_load(v), wasm_f32x4_splat(minVal)),
|
wasm_f32x4_pmax(glmm_load(v), wasm_f32x4_splat(minVal)),
|
||||||
wasm_f32x4_splat(maxVal)));
|
wasm_f32x4_splat(maxVal)));
|
||||||
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
#elif defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(v, _mm_min_ps(_mm_max_ps(glmm_load(v), _mm_set1_ps(minVal)),
|
glmm_store(v, _mm_min_ps(_mm_max_ps(glmm_load(v), _mm_set1_ps(minVal)),
|
||||||
|
Reference in New Issue
Block a user