Fixed SIMD intrisic yBxA -> AxBy.

This commit is contained in:
Branimir Karadžić
2017-10-27 17:57:23 -07:00
parent 894bac2011
commit 0294cb134c
6 changed files with 8 additions and 7 deletions

View File

@@ -112,7 +112,7 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
}
template<>
BX_SIMD_FORCE_INLINE simd128_langext_t simd_shuf_yBxA(simd128_langext_t _a, simd128_langext_t _b)
BX_SIMD_FORCE_INLINE simd128_langext_t simd_shuf_AxBy(simd128_langext_t _a, simd128_langext_t _b)
{
simd128_langext_t result;
result.vf = __builtin_shufflevector(_a.vf, _b.vf, 1, 5, 0, 4);

View File

@@ -102,7 +102,7 @@ BX_SIMD128_IMPLEMENT_TEST(yzw, yzww);
}
template<>
BX_SIMD_FORCE_INLINE simd128_neon_t simd_shuf_yBxA(simd128_neon_t _a, simd128_neon_t _b)
BX_SIMD_FORCE_INLINE simd128_neon_t simd_shuf_AxBy(simd128_neon_t _a, simd128_neon_t _b)
{
return __builtin_shuffle(_a, _b, (uint32x4_t){ 1, 5, 0, 4 });
}

View File

@@ -130,7 +130,7 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
}
template<>
BX_SIMD_FORCE_INLINE simd128_ref_t simd_shuf_yBxA(simd128_ref_t _a, simd128_ref_t _b)
BX_SIMD_FORCE_INLINE simd128_ref_t simd_shuf_AxBy(simd128_ref_t _a, simd128_ref_t _b)
{
simd128_ref_t result;
result.uxyzw[0] = _a.uxyzw[1];

View File

@@ -90,7 +90,7 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
}
template<>
BX_SIMD_FORCE_INLINE simd128_sse_t simd_shuf_yBxA(simd128_sse_t _a, simd128_sse_t _b)
BX_SIMD_FORCE_INLINE simd128_sse_t simd_shuf_AxBy(simd128_sse_t _a, simd128_sse_t _b)
{
return _mm_unpacklo_ps(_b, _a);
}

View File

@@ -101,7 +101,7 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw);
Ty simd_shuf_xAyB(Ty _a, Ty _b);
template<typename Ty>
Ty simd_shuf_yBxA(Ty _a, Ty _b);
Ty simd_shuf_AxBy(Ty _a, Ty _b);
template<typename Ty>
Ty simd_shuf_zCwD(Ty _a, Ty _b);

View File

@@ -235,13 +235,14 @@ TEST_CASE("simd_shuffle", "")
const simd128_t ABCD = simd_ild(0x41414141, 0x42424242, 0x43434343, 0x44444444);
simd_check_string("xyAB", simd_shuf_xyAB(xyzw, ABCD) );
simd_check_string("ABxy", simd_shuf_ABxy(xyzw, ABCD) );
simd_check_string("zwCD", simd_shuf_zwCD(xyzw, ABCD) );
simd_check_string("CDzw", simd_shuf_CDzw(xyzw, ABCD) );
simd_check_string("zwCD", simd_shuf_zwCD(xyzw, ABCD) );
simd_check_string("xAyB", simd_shuf_xAyB(xyzw, ABCD) );
simd_check_string("AxBy", simd_shuf_AxBy(xyzw, ABCD) );
simd_check_string("zCwD", simd_shuf_zCwD(xyzw, ABCD) );
simd_check_string("CzDw", simd_shuf_CzDw(xyzw, ABCD) );
simd_check_string("xAzC", simd_shuf_xAzC(xyzw, ABCD) );
simd_check_string("yBwD", simd_shuf_yBwD(xyzw, ABCD) );
simd_check_string("CzDw", simd_shuf_CzDw(xyzw, ABCD) );
}
TEST_CASE("simd_compare", "")