Index: src/core/Sk4x_sse.h |
diff --git a/src/core/Sk4x_sse.h b/src/core/Sk4x_sse.h |
index 10a0a830dfe27bb0460fd1057f2ce97f03c19e27..ee09f774493946c29d55a019658df484ee7d6ccd 100644 |
--- a/src/core/Sk4x_sse.h |
+++ b/src/core/Sk4x_sse.h |
@@ -75,6 +75,7 @@ Sk4x<T> Sk4x<T>::ZWCD(const Sk4x<T>& a, const Sk4x<T>& b) { |
// Now we'll write all Sk4f specific methods. This M() macro will remove some noise. |
#define M(...) template <> inline __VA_ARGS__ Sk4f:: |
+M() Sk4x(float v) : fVec(_mm_set1_ps(v)) {} |
M() Sk4x(float a, float b, float c, float d) : fVec(_mm_set_ps(d,c,b,a)) {} |
M(Sk4f) Load (const float fs[4]) { return _mm_loadu_ps(fs); } |
@@ -112,6 +113,7 @@ M(Sk4f) Max(const Sk4f& a, const Sk4f& b) { return _mm_max_ps(a.fVec, b.fVec); } |
#undef M |
#define M(...) template <> inline __VA_ARGS__ Sk4i:: |
+M() Sk4x(int32_t v) : fVec(_mm_set1_epi32(v)) {} |
M() Sk4x(int32_t a, int32_t b, int32_t c, int32_t d) : fVec(_mm_set_epi32(d,c,b,a)) {} |
M(Sk4i) Load (const int32_t is[4]) { return _mm_loadu_si128((const __m128i*)is); } |