mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
@@ -34,17 +34,19 @@ glmm_hadd(float32x4_t v) {
|
|||||||
static inline
|
static inline
|
||||||
float
|
float
|
||||||
glmm_hmin(float32x4_t v) {
|
glmm_hmin(float32x4_t v) {
|
||||||
v = vpmin_f32(vget_low_f32(v), vget_high_f32(v));
|
float32x2_t t;
|
||||||
v = vpmin_f32(v, v);
|
t = vpmin_f32(vget_low_f32(v), vget_high_f32(v));
|
||||||
return vget_lane_f32(v, 0);
|
t = vpmin_f32(t, t);
|
||||||
|
return vget_lane_f32(t, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
float
|
float
|
||||||
glmm_hmax(float32x4_t v) {
|
glmm_hmax(float32x4_t v) {
|
||||||
v = vpmax_f32(vget_low_f32(v), vget_high_f32(v));
|
float32x2_t t;
|
||||||
v = vpmax_f32(v, v);
|
t = vpmax_f32(vget_low_f32(v), vget_high_f32(v));
|
||||||
return vget_lane_f32(v, 0);
|
t = vpmax_f32(t, t);
|
||||||
|
return vget_lane_f32(t, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ glm_vec4_abs(vec4 v, vec4 dest) {
|
|||||||
#if defined( __SSE__ ) || defined( __SSE2__ )
|
#if defined( __SSE__ ) || defined( __SSE2__ )
|
||||||
glmm_store(dest, glmm_abs(glmm_load(v)));
|
glmm_store(dest, glmm_abs(glmm_load(v)));
|
||||||
#elif defined(CGLM_NEON_FP)
|
#elif defined(CGLM_NEON_FP)
|
||||||
vst1q_f32(dest, vabsq_f32(vld1q_f32(a)));
|
vst1q_f32(dest, vabsq_f32(vld1q_f32(v)));
|
||||||
#else
|
#else
|
||||||
dest[0] = fabsf(v[0]);
|
dest[0] = fabsf(v[0]);
|
||||||
dest[1] = fabsf(v[1]);
|
dest[1] = fabsf(v[1]);
|
||||||
|
|||||||
Reference in New Issue
Block a user