From 9b8c18f99ee64719fcec16b6d62e125bb5d14ec0 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 30 Jun 2019 11:44:00 +0200 Subject: [PATCH] Improve readability. --- client/TracyDxt1.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/client/TracyDxt1.cpp b/client/TracyDxt1.cpp index b7bf50f9..8efe7d19 100644 --- a/client/TracyDxt1.cpp +++ b/client/TracyDxt1.cpp @@ -542,12 +542,16 @@ static tracy_force_inline void ProcessRGB_AVX( const uint8_t* src, char*& dst ) __m256i p8 = _mm256_packus_epi32( p7, p7 ); __m256i p = _mm256_packus_epi16( p8, p8 ); + __m256i mmmr = _mm256_set_epi16( 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800 ); + __m256i mmmg = _mm256_set_epi16( 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000 ); + __m256i mmmb = _mm256_set_epi16( 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000 ); + __m256i mm0 = _mm256_unpacklo_epi8( _mm256_setzero_si256(), min ); __m256i mm1 = _mm256_unpacklo_epi8( _mm256_setzero_si256(), max ); __m256i mm2 = _mm256_unpacklo_epi64( mm1, mm0 ); - __m256i mmr = _mm256_and_si256( mm2, _mm256_set_epi16( 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800 ) ); - __m256i mmg = _mm256_srli_epi64( _mm256_and_si256( mm2, _mm256_set_epi16( 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000, 0x0000, 0x0000, 0xFC00, 0x0000 ) ), 21 ); - __m256i mmb = _mm256_srli_epi64( _mm256_and_si256( mm2, _mm256_set_epi16( 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000, 0x0000, 0xF800, 0x0000, 0x0000 ) ), 43 ); + __m256i mmr = _mm256_and_si256( mm2, mmmr ); + __m256i mmg = _mm256_srli_epi64( _mm256_and_si256( mm2, mmmg ), 21 ); + __m256i mmb = _mm256_srli_epi64( _mm256_and_si256( mm2, mmmb ), 43 ); __m256i mm3 = _mm256_or_si256( mmr, mmg ); __m256i mm4 = _mm256_or_si256( mm3, mmb ); __m256i mm5 = _mm256_packus_epi32( mm4, mm4 );