|
|
|
@ -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 |
|
|
|
|