mkdir ".tmp" ".tmp/src"
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/attack.cpp -o .tmp/src/attack.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/bench.cpp -o .tmp/src/bench.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/history.cpp -o .tmp/src/history.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/init.cpp -o .tmp/src/init.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/io.cpp -o .tmp/src/io.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/main.cpp -o .tmp/src/main.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/makemove.cpp -o .tmp/src/makemove.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/movegen.cpp -o .tmp/src/movegen.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/movepicker.cpp -o .tmp/src/movepicker.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/nnue.cpp -o .tmp/src/nnue.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/perft.cpp -o .tmp/src/perft.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/position.cpp -o .tmp/src/position.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/search.cpp -o .tmp/src/search.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/time_manager.cpp -o .tmp/src/time_manager.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/ttable.cpp -o .tmp/src/ttable.o 
g++ -funroll-loops -O3 -flto -fno-exceptions -std=gnu++2a -DNDEBUG -Wall -Wcast-qual -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wnull-dereference -Wlogical-op -Wold-style-cast -Wundef -pedantic -static -DUSE_VNNI512 -DUSE_AVX512 -mavx512f -mavx512bw -mavx512vnni -mfma -DNETWORK_NAME=\"nn.net\" -DEVALFILE=\"nn.net\" -march=native -MMD -MP -c src/uci.cpp -o .tmp/src/uci.o 
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/perft.cpp:2:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/history.cpp:4:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/ttable.h:3,
                 from src/ttable.cpp:1:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/search.h:5,
                 from src/movepicker.h:2,
                 from src/movepicker.cpp:1:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/ttable.h:3,
                 from src/bench.cpp:1:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/time_manager.cpp:2:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/ttable.h:3,
                 from src/makemove.cpp:3:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
In file included from src/nnue.h:12,
                 from src/nnue.cpp:1:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/attack.h:4,
                 from src/movegen.cpp:2:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/attack.h:4,
                 from src/attack.cpp:2:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/position.cpp:3:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/search.h:5,
                 from src/search.cpp:5:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/search.h:5,
                 from src/uci.cpp:6:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/search.h:5,
                 from src/threads.h:6,
                 from src/io.cpp:7:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
src/nnue.cpp: In static member function 'static void NNUE::PropagateL3(const float*, const float*, float, float&)':
src/nnue.cpp:541:14: error: 'reduce_add' was not declared in this scope
  541 |     output = reduce_add(sums, numSums) + bias;
      |              ^~~~~~~~~~
In file included from src/nnue.h:12,
                 from src/position.h:9,
                 from src/init.cpp:2:
src/simd.h:10:16: error: '__m512i' does not name a type
   10 | using vepi8  = __m512i;
      |                ^~~~~~~
src/simd.h:11:16: error: '__m512i' does not name a type
   11 | using vepi16 = __m512i;
      |                ^~~~~~~
src/simd.h:12:16: error: '__m512i' does not name a type
   12 | using vepi32 = __m512i;
      |                ^~~~~~~
src/simd.h:13:16: error: '__m512' does not name a type
   13 | using vps32  = __m512;
      |                ^~~~~~
src/simd.h:14:16: error: '__m128i' does not name a type
   14 | using v128i  = __m128i;
      |                ^~~~~~~
src/simd.h:16:8: error: 'vepi16' does not name a type
   16 | inline vepi16 vec_zero_epi16() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:17:8: error: 'vepi32' does not name a type
   17 | inline vepi32 vec_zero_epi32() { return _mm512_setzero_si512(); }
      |        ^~~~~~
src/simd.h:18:8: error: 'vepi16' does not name a type
   18 | inline vepi16 vec_set1_epi16 (const int16_t n) { return _mm512_set1_epi16(n); }
      |        ^~~~~~
src/simd.h:19:8: error: 'vepi32' does not name a type
   19 | inline vepi32 vec_set1_epi32 (const int32_t n) { return _mm512_set1_epi32(n); }
      |        ^~~~~~
src/simd.h:20:8: error: 'vepi16' does not name a type
   20 | inline vepi16 vec_load_epi   (const vepi16 *src) { return _mm512_load_si512(src); }
      |        ^~~~~~
src/simd.h:21:15: error: variable or field 'vec_store_epi' declared void
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |               ^~~~~~~~~~~~~
src/simd.h:21:31: error: 'vepi16' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                               ^~~~~~
src/simd.h:21:39: error: 'dst' was not declared in this scope
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                       ^~~
src/simd.h:21:44: error: expected primary-expression before 'const'
   21 | inline void   vec_store_epi  (vepi16 *dst, const vepi16 vec) { _mm512_store_si512(dst, vec); }
      |                                            ^~~~~
src/simd.h:22:8: error: 'vepi16' does not name a type
   22 | inline vepi16 vec_max_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_max_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:23:8: error: 'vepi16' does not name a type
   23 | inline vepi16 vec_min_epi16  (const vepi16 vec0, const vepi16 vec1) { return _mm512_min_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:24:8: error: 'vepi16' does not name a type
   24 | inline vepi16 vec_mulhi_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_mulhi_epi16(vec0, vec1); }
      |        ^~~~~~
src/simd.h:25:8: error: 'vepi16' does not name a type
   25 | inline vepi16 vec_slli_epi16 (const vepi16 vec, const int shift) { return _mm512_slli_epi16(vec, shift); }
      |        ^~~~~~
src/simd.h:26:36: error: 'vepi32' does not name a type
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                    ^~~~~~
src/simd.h: In function 'uint16_t vec_nnz_mask(int)':
src/simd.h:26:86: error: '_mm512_setzero_si512' was not declared in this scope; did you mean '_mm512_setr4_epi32'?
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                      _mm512_setr4_epi32
src/simd.h:26:57: error: '_mm512_cmpgt_epi32_mask' was not declared in this scope; did you mean '_mm512_cmp_ph_mask'?
   26 | inline uint16_t vec_nnz_mask(const vepi32 vec) { return _mm512_cmpgt_epi32_mask(vec, _mm512_setzero_si512()); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
      |                                                         _mm512_cmp_ph_mask
src/simd.h: At global scope:
src/simd.h:27:8: error: 'vepi8' does not name a type
   27 | inline vepi8  vec_packus_epi16(const vepi16 vec0, const vepi16 vec1) { return _mm512_packus_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:29:8: error: 'vepi32' does not name a type
   29 | inline vepi32 vec_dpbusdx2_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1, const vepi8 vec2, const vepi8 vec3) {
      |        ^~~~~~
src/simd.h:40:8: error: 'vepi32' does not name a type
   40 | inline vepi32 vec_dpbusd_epi32(const vepi32 sum, const vepi8 vec0, const vepi8 vec1) {
      |        ^~~~~~
src/simd.h:50:8: error: 'v128i' does not name a type
   50 | inline v128i vec128_zero_epi16() { return _mm_setzero_si128(); }
      |        ^~~~~
src/simd.h:51:8: error: 'v128i' does not name a type
   51 | inline v128i vec128_set1_epi16(const int16_t n) { return _mm_set1_epi16(n); }
      |        ^~~~~
src/simd.h:52:8: error: 'v128i' does not name a type
   52 | inline v128i vec128_add_epi16 (const v128i vec0, const v128i vec1) { return _mm_add_epi16(vec0, vec1); }
      |        ^~~~~
src/simd.h:53:8: error: 'v128i' does not name a type
   53 | inline v128i vec128_loadu_epi16 (const v128i *src) { return _mm_loadu_si128(src); }
      |        ^~~~~
src/simd.h:54:14: error: variable or field 'vec128_storeu_epi16' declared void
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |              ^~~~~~~~~~~~~~~~~~~
src/simd.h:54:34: error: 'v128i' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                  ^~~~~
src/simd.h:54:41: error: 'dst' was not declared in this scope
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                         ^~~
src/simd.h:54:46: error: expected primary-expression before 'const'
   54 | inline void  vec128_storeu_epi16(v128i *dst, const v128i vec) { _mm_storeu_si128(dst, vec); }
      |                                              ^~~~~
src/simd.h:56:8: error: 'vps32' does not name a type
   56 | inline vps32 vec_cvtepi32_ps(const vepi32 vec) { return _mm512_cvtepi32_ps(vec); }
      |        ^~~~~
src/simd.h:58:8: error: 'vps32' does not name a type
   58 | inline vps32 vec_zero_ps () { return _mm512_setzero_ps(); }
      |        ^~~~~
src/simd.h:59:8: error: 'vps32' does not name a type
   59 | inline vps32 vec_set1_ps (const float n) { return _mm512_set1_ps(n); }
      |        ^~~~~
src/simd.h:60:8: error: 'vps32' does not name a type
   60 | inline vps32 vec_load_ps (const float *src) { return _mm512_load_ps(src); }
      |        ^~~~~
src/simd.h:61:45: error: 'vps32' does not name a type
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                             ^~~~~
src/simd.h: In function 'void vec_store_ps(float*, int)':
src/simd.h:61:65: error: '_mm512_store_ps' was not declared in this scope; did you mean '_mm512_setr4_ps'?
   61 | inline void  vec_store_ps(float *dst, const vps32 vec) { return _mm512_store_ps(dst, vec); }
      |                                                                 ^~~~~~~~~~~~~~~
      |                                                                 _mm512_setr4_ps
src/simd.h: At global scope:
src/simd.h:62:8: error: 'vps32' does not name a type
   62 | inline vps32 vec_add_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_add_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:63:8: error: 'vps32' does not name a type
   63 | inline vps32 vec_mul_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_mul_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:64:8: error: 'vps32' does not name a type
   64 | inline vps32 vec_min_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_min_ps(vec0, vec1); }
      |        ^~~~~
make: *** [makefile:169: .tmp/src/history.o] Error 1
make: *** Waiting for unfinished jobs....
src/simd.h:65:8: error: 'vps32' does not name a type
   65 | inline vps32 vec_max_ps  (const vps32 vec0, const vps32 vec1) { return _mm512_max_ps(vec0, vec1); }
      |        ^~~~~
src/simd.h:66:8: error: 'vps32' does not name a type
   66 | inline vps32 vec_mul_add_ps(const vps32 vec0, const vps32 vec1, const vps32 vec2) { return _mm512_fmadd_ps(vec0, vec1, vec2); }
      |        ^~~~~
src/simd.h:67:38: error: 'vps32' does not name a type
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                      ^~~~~
make: *** [makefile:169: .tmp/src/movepicker.o] Error 1
make: *** [makefile:169: .tmp/src/ttable.o] Error 1
src/simd.h: In function 'float vec_reduce_add_ps(const int*)':
src/simd.h:67:60: error: '_mm512_reduce_add_ps' was not declared in this scope; did you mean 'vec_reduce_add_ps'?
   67 | inline float vec_reduce_add_ps(const vps32 *vecs) { return _mm512_reduce_add_ps(vecs[0]); }
      |                                                            ^~~~~~~~~~~~~~~~~~~~
      |                                                            vec_reduce_add_ps
make: *** [makefile:169: .tmp/src/attack.o] Error 1
make: *** [makefile:169: .tmp/src/bench.o] Error 1
make: *** [makefile:169: .tmp/src/movegen.o] Error 1
make: *** [makefile:169: .tmp/src/time_manager.o] Error 1
make: *** [makefile:169: .tmp/src/perft.o] Error 1
make: *** [makefile:169: .tmp/src/nnue.o] Error 1
make: *** [makefile:169: .tmp/src/makemove.o] Error 1
make: *** [makefile:169: .tmp/src/position.o] Error 1
make: *** [makefile:169: .tmp/src/uci.o] Error 1
make: *** [makefile:169: .tmp/src/io.o] Error 1
make: *** [makefile:169: .tmp/src/search.o] Error 1
make: *** [makefile:169: .tmp/src/init.o] Error 1