rsimd

Make SIMD instruction sets easier to use
git clone git://git.meso-star.fr/rsimd.git
Log | Files | Refs | README | LICENSE

commit f88d39d26edfd5a059e09984241ceb0fc9d4613f
parent 666a26f2ce4cff5c3428376e2a22027a7508c7cc
Author: vaplv <vaplv@free.fr>
Date:   Wed,  5 Nov 2014 09:34:46 +0100

Add and test the v4f_ywbd function

Diffstat:
Msrc/sse/ssef.h | 6++++++
Msrc/test_v4f.c | 6++++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/sse/ssef.h b/src/sse/ssef.h @@ -187,6 +187,12 @@ v4f_xycd(const v4f_T xyzw, const v4f_T abcd) } static FINLINE v4f_T +v4f_ywbd(const v4f_T xyzw, const v4f_T abcd) +{ + return _mm_shuffle_ps(xyzw, abcd, _MM_SHUFFLE(3, 1, 3, 1)); +} + +static FINLINE v4f_T v4f_xbzw(const v4f_T xyzw, const v4f_T abcd) { const v4f_T zwzw = _mm_movehl_ps(xyzw, xyzw); diff --git a/src/test_v4f.c b/src/test_v4f.c @@ -164,6 +164,12 @@ main(int argc, char** argv) CHECK(v4f_z(k), 7.f); CHECK(v4f_w(k), 8.f); + k = v4f_ywbd(i, j); + CHECK(v4f_x(k), 2.f); + CHECK(v4f_y(k), 4.f); + CHECK(v4f_z(k), 6.f); + CHECK(v4f_w(k), 8.f); + k = v4f_xbzw(i, j); CHECK(v4f_x(k), 1.f); CHECK(v4f_y(k), 6.f);