diff --git a/include/QF/simd/vec4d.h b/include/QF/simd/vec4d.h index 3b87eb14a..d0e3f19bc 100644 --- a/include/QF/simd/vec4d.h +++ b/include/QF/simd/vec4d.h @@ -97,6 +97,7 @@ GNU89INLINE inline vec4d_t qconjd (vec4d_t q) __attribute__((const)); GNU89INLINE inline vec4d_t loadvec3d (const double v3[]) __attribute__((pure)); GNU89INLINE inline void storevec3d (double v3[3], vec4d_t v4); GNU89INLINE inline vec4l_t loadvec3l (const long *v3) __attribute__((pure)); +GNU89INLINE inline vec4l_t loadvec3l1 (const long *v3) __attribute__((pure)); GNU89INLINE inline void storevec3l (long *v3, vec4l_t v4); #ifndef IMPLEMENT_VEC4D_Funcs @@ -307,6 +308,18 @@ loadvec3l (const long *v3) return v4; } +#ifndef IMPLEMENT_VEC4F_Funcs +GNU89INLINE inline +#else +VISIBLE +#endif +vec4l_t +loadvec3l1 (const long *v3) +{ + vec4l_t v4 = { v3[0], v3[1], v3[2], 1 }; + return v4; +} + #ifndef IMPLEMENT_VEC4F_Funcs GNU89INLINE inline #else diff --git a/include/QF/simd/vec4i.h b/include/QF/simd/vec4i.h index 6320cd83a..db303e610 100644 --- a/include/QF/simd/vec4i.h +++ b/include/QF/simd/vec4i.h @@ -38,6 +38,7 @@ GNU89INLINE inline int any4i (vec4i_t v) __attribute__((const)); GNU89INLINE inline int all4i (vec4i_t v) __attribute__((const)); GNU89INLINE inline int none4i (vec4i_t v) __attribute__((const)); GNU89INLINE inline vec4i_t loadvec3i (const int *v3) __attribute__((pure)); +GNU89INLINE inline vec4i_t loadvec3i1 (const int *v3) __attribute__((pure)); GNU89INLINE inline void storevec3i (int *v3, vec4i_t v4); #ifndef IMPLEMENT_VEC4F_Funcs @@ -107,6 +108,18 @@ loadvec3i (const int *v3) return v4; } +#ifndef IMPLEMENT_VEC4F_Funcs +GNU89INLINE inline +#else +VISIBLE +#endif +vec4i_t +loadvec3i1 (const int *v3) +{ + vec4i_t v4 = { v3[0], v3[1], v3[2], 1 }; + return v4; +} + #ifndef IMPLEMENT_VEC4F_Funcs GNU89INLINE inline #else