]> git.sesse.net Git - stockfish/blobdiff - src/nnue/layers/affine_transform_sparse_input.h
Simplify away lookup_count.
[stockfish] / src / nnue / layers / affine_transform_sparse_input.h
index 18c166cd9d7897e8c221a8eafb61ce68c1c52ad4..3c7defcc42cbc25425d30e98708d13eaa54a8ac2 100644 (file)
@@ -24,7 +24,6 @@
 #include <iostream>
 #include <algorithm>
 #include <array>
-#include <bitset>
 #include <type_traits>
 #include "../nnue_common.h"
 #include "affine_transform.h"
@@ -75,12 +74,6 @@ namespace Stockfish::Eval::NNUE::Layers {
     }
     return v;
   }();
-  alignas(CacheLineSize) static inline const std::array<unsigned, 256> lookup_count = [](){
-    std::array<unsigned, 256> v;
-    for (int i = 0; i < 256; ++i)
-      v[i] = unsigned(std::bitset<8>(i).count());
-    return v;
-  }();
 
   // Find indices of nonzero numbers in an int32_t array
   template<const IndexType InputDimensions>
@@ -120,7 +113,7 @@ namespace Stockfish::Eval::NNUE::Layers {
         const auto lookup = (nnz >> (j * 8)) & 0xFF;
         const auto offsets = _mm_loadu_si128(reinterpret_cast<const __m128i*>(&lookup_indices[lookup]));
         _mm_storeu_si128(reinterpret_cast<__m128i*>(out + count), _mm_add_epi16(base, offsets));
-        count += lookup_count[lookup];
+        count += popcount(lookup);
         base = _mm_add_epi16(base, increment);
       }
     }