|
|
@@ -339,118 +339,132 @@ namespace detail
|
|
|
};
|
|
|
}//namespace detail
|
|
|
|
|
|
+# if !GLM_HAS_DEFAULTED_FUNCTIONS
|
|
|
+ template<>
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec()
|
|
|
+ {}
|
|
|
+
|
|
|
+ template<>
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec()
|
|
|
+ {}
|
|
|
+
|
|
|
+ template<>
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec()
|
|
|
+ {}
|
|
|
+# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
|
|
|
+
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_lowp>::vec(float _s)
|
|
|
- : data(_mm_set1_ps(_s))
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(float _s) :
|
|
|
+ data(_mm_set1_ps(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_mediump>::vec(float _s)
|
|
|
- : data(_mm_set1_ps(_s))
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(float _s) :
|
|
|
+ data(_mm_set1_ps(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_highp>::vec(float _s)
|
|
|
- : data(_mm_set1_ps(_s))
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(float _s) :
|
|
|
+ data(_mm_set1_ps(_s))
|
|
|
{}
|
|
|
|
|
|
# if GLM_ARCH & GLM_ARCH_AVX_BIT
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, double, aligned_lowp>::vec(double _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_lowp>::vec(double _s) :
|
|
|
data(_mm256_set1_pd(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, double, aligned_mediump>::vec(double _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_mediump>::vec(double _s) :
|
|
|
data(_mm256_set1_pd(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, double, aligned_highp>::vec(double _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_highp>::vec(double _s) :
|
|
|
data(_mm256_set1_pd(_s))
|
|
|
{}
|
|
|
# endif
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_lowp>::vec(int32 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_lowp>::vec(int32 _s) :
|
|
|
data(_mm_set1_epi32(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_mediump>::vec(int32 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_mediump>::vec(int32 _s) :
|
|
|
data(_mm_set1_epi32(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_highp>::vec(int32 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_highp>::vec(int32 _s) :
|
|
|
data(_mm_set1_epi32(_s))
|
|
|
{}
|
|
|
|
|
|
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int64, aligned_lowp>::vec(int64 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_lowp>::vec(int64 _s) :
|
|
|
data(_mm256_set1_epi64x(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int64, aligned_mediump>::vec(int64 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_mediump>::vec(int64 _s) :
|
|
|
data(_mm256_set1_epi64x(_s))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int64, aligned_highp>::vec(int64 _s) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_highp>::vec(int64 _s) :
|
|
|
data(_mm256_set1_epi64x(_s))
|
|
|
{}
|
|
|
# endif
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_lowp>::vec(float _x, float _y, float _z, float _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(float _x, float _y, float _z, float _w) :
|
|
|
data(_mm_set_ps(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_mediump>::vec(float _x, float _y, float _z, float _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(float _x, float _y, float _z, float _w) :
|
|
|
data(_mm_set_ps(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_highp>::vec(float _x, float _y, float _z, float _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(float _x, float _y, float _z, float _w) :
|
|
|
data(_mm_set_ps(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_set_epi32(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_set_epi32(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, int32, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_set_epi32(_w, _z, _y, _x))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
|
|
|
{}
|
|
|
|
|
|
template<>
|
|
|
template<>
|
|
|
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, float, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
|
|
|
data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
|
|
|
{}
|
|
|
}//namespace glm
|