From 4712d510cf256265d273a26306d9b7725fb885e4 Mon Sep 17 00:00:00 2001 From: Groove Date: Mon, 30 Jul 2018 23:47:04 +0200 Subject: [PATCH] More load experiments --- test/gtx/gtx_load.cpp | 56 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/test/gtx/gtx_load.cpp b/test/gtx/gtx_load.cpp index dc8cdd69..896f427e 100644 --- a/test/gtx/gtx_load.cpp +++ b/test/gtx/gtx_load.cpp @@ -11,13 +11,65 @@ namespace glm { -/* + enum genTypeEnum + { + QUALIFIER_HIGHP, + QUALIFIER_MEDIUMP, + QUALIFIER_LOWP + }; + + template + struct genTypeTrait + {}; + + template + struct genTypeTrait > + { + static const genTypeEnum GENTYPE = QUALIFIER_HIGHP; + }; + + template + struct genTypeTrait > + { + static const genTypeEnum GENTYPE = QUALIFIER_MEDIUMP; + }; + + template + struct genTypeTrait > + { + static const genTypeEnum GENTYPE = QUALIFIER_LOWP; + }; + + template + struct load_gentype + { + + }; + +# if GLM_ARCH & GLM_ARCH_SSE_BIT + template + struct load_gentype<4, float, Q, true> + { + GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<4, float, Q> load(float const* Mem) + { + vec<4, float, Q> Result; + Result.data = _mm_loadu_ps(Mem); + return Result; + } + }; +# endif//GLM_ARCH & GLM_ARCH_SSE_BIT + + template + GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType example_identity() + { + return detail::init_gentype::GENTYPE>::identity(); + } + template genType load(valType const* Mem) { } -*/ aligned_vec4 loadu(float const* Mem) {