MCPcopy Create free account
hub / github.com/defold/defold / table_lookup6_8

Function table_lookup6_8

engine/dlib/src/basis/encoder/cppspmd_sse.h:1988–2010  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1986}
1987
1988CPPSPMD_FORCE_INLINE vint table_lookup6_8(const vint& a, const vint& table_0, const vint& table_1, const vint& table_2, const vint& table_3)
1989{
1990 __m128i m_0 = _mm_slli_epi32(a.m_value, 31 - 4);
1991
1992 __m128 av_0;
1993 {
1994 __m128i al_0 = shuffle_epi8(table_0.m_value, a.m_value);
1995 __m128i ah_0 = shuffle_epi8(table_1.m_value, a.m_value);
1996 av_0 = blendv_ps(_mm_castsi128_ps(al_0), _mm_castsi128_ps(ah_0), _mm_castsi128_ps(m_0));
1997 }
1998
1999 __m128 bv_0;
2000 {
2001 __m128i bl_0 = shuffle_epi8(table_2.m_value, a.m_value);
2002 __m128i bh_0 = shuffle_epi8(table_3.m_value, a.m_value);
2003 bv_0 = blendv_ps(_mm_castsi128_ps(bl_0), _mm_castsi128_ps(bh_0), _mm_castsi128_ps(m_0));
2004 }
2005
2006 __m128i m2_0 = _mm_slli_epi32(a.m_value, 31 - 5);
2007 __m128 v2_0 = blendv_ps(av_0, bv_0, _mm_castsi128_ps(m2_0));
2008
2009 return vint{ _mm_castps_si128(v2_0) };
2010}
2011
2012#if 0
2013template<typename SPMDKernel, typename... Args>

Callers

nothing calls this directly

Calls 2

shuffle_epi8Function · 0.85
blendv_psFunction · 0.85

Tested by

no test coverage detected