few ARM fixes

This commit is contained in:
Gottfried Leibniz 2022-01-14 19:14:27 -04:00
parent 6ad79aae3e
commit bfeb882fdb
2 changed files with 8 additions and 5 deletions

View File

@ -121,8 +121,10 @@ namespace glm {
} }
#endif // CXX11 #endif // CXX11
namespace detail
{
template<qualifier Q> template<qualifier Q>
struct detail::compute_inverse<4, 4, float, Q, true> struct compute_inverse<4, 4, float, Q, true>
{ {
GLM_FUNC_QUALIFIER static mat<4, 4, float, Q> call(mat<4, 4, float, Q> const& m) GLM_FUNC_QUALIFIER static mat<4, 4, float, Q> call(mat<4, 4, float, Q> const& m)
{ {
@ -245,5 +247,6 @@ namespace glm {
return r; return r;
} }
}; };
}//namespace detail
}//namespace glm }//namespace glm
#endif #endif

View File

@ -499,7 +499,7 @@ namespace detail {
vec<4, int, Q> vec<4, int, Q>
call(vec<4, int, Q> const& a, vec<4, int, Q> const& b) call(vec<4, int, Q> const& a, vec<4, int, Q> const& b)
{ {
vec<4, uint, Q> Result; vec<4, int, Q> Result;
Result.data = vaddq_s32(a.data, b.data); Result.data = vaddq_s32(a.data, b.data);
return Result; return Result;
} }
@ -593,7 +593,7 @@ namespace detail {
cmp = vpminq_u32(cmp, cmp); cmp = vpminq_u32(cmp, cmp);
uint32_t r = cmp[0]; uint32_t r = cmp[0];
#else #else
uint32x2_t cmpx2 = vpmin_u32(vget_low_f32(cmp), vget_high_f32(cmp)); uint32x2_t cmpx2 = vpmin_u32(vget_low_u32(cmp), vget_high_u32(cmp));
cmpx2 = vpmin_u32(cmpx2, cmpx2); cmpx2 = vpmin_u32(cmpx2, cmpx2);
uint32_t r = cmpx2[0]; uint32_t r = cmpx2[0];
#endif #endif
@ -612,7 +612,7 @@ namespace detail {
cmp = vpminq_u32(cmp, cmp); cmp = vpminq_u32(cmp, cmp);
uint32_t r = cmp[0]; uint32_t r = cmp[0];
#else #else
uint32x2_t cmpx2 = vpmin_u32(vget_low_f32(cmp), vget_high_f32(cmp)); uint32x2_t cmpx2 = vpmin_u32(vget_low_u32(cmp), vget_high_u32(cmp));
cmpx2 = vpmin_u32(cmpx2, cmpx2); cmpx2 = vpmin_u32(cmpx2, cmpx2);
uint32_t r = cmpx2[0]; uint32_t r = cmpx2[0];
#endif #endif
@ -631,7 +631,7 @@ namespace detail {
cmp = vpminq_u32(cmp, cmp); cmp = vpminq_u32(cmp, cmp);
uint32_t r = cmp[0]; uint32_t r = cmp[0];
#else #else
uint32x2_t cmpx2 = vpmin_u32(vget_low_f32(cmp), vget_high_f32(cmp)); uint32x2_t cmpx2 = vpmin_u32(vget_low_u32(cmp), vget_high_u32(cmp));
cmpx2 = vpmin_u32(cmpx2, cmpx2); cmpx2 = vpmin_u32(cmpx2, cmpx2);
uint32_t r = cmpx2[0]; uint32_t r = cmpx2[0];
#endif #endif