kfrlib / kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
https://www.kfrlib.com
GNU General Public License v2.0
1.65k stars 253 forks source link

Can't compile with avx512 on mingw-gcc #97

Closed purpl3F0x closed 3 years ago

purpl3F0x commented 4 years ago

I'm getting the following error's when trying to compile with gcc-10.2(msys2) on windows: (clang compiles fine)

In file included from C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/read_write.hpp:28,
                 from C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/base/univector.hpp:31,
                 from C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/base/basic_expressions.hpp:30,
                 from C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/io/audiofile.hpp:28,
                 from C:\Users\Stavros Avramidis\Music\roon-bench\kfr-4.2.0\include\kfr\io\impl\audiofile-impl.cpp:27:
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'kfr::avx512::intrinsics::u8avx512 kfr::avx512::intrinsics::read(kfr::cunaligned_t, cometa::csize_t<64>, const u8*)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:287:80: error: '_mm512_loadu_epi8' was not declared in this scope; did you mean '_mm512_loadu_epi32'?
  287 | KFR_INTRINSIC u8avx512 read(cunaligned_t, csize_t<64>, const u8* ptr) { return _mm512_loadu_epi8(ptr); }
      |                                                                                ^~~~~~~~~~~~~~~~~
      |                                                                                _mm512_loadu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'kfr::avx512::intrinsics::i8avx512 kfr::avx512::intrinsics::read(kfr::cunaligned_t, cometa::csize_t<64>, const i8*)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:288:80: error: '_mm512_loadu_epi8' was not declared in this scope; did you mean '_mm512_loadu_epi32'?
  288 | KFR_INTRINSIC i8avx512 read(cunaligned_t, csize_t<64>, const i8* ptr) { return _mm512_loadu_epi8(ptr); }
      |                                                                                ^~~~~~~~~~~~~~~~~
      |                                                                                _mm512_loadu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'kfr::avx512::intrinsics::u16avx512 kfr::avx512::intrinsics::read(kfr::cunaligned_t, cometa::csize_t<32>, const u16*)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:289:82: error: '_mm512_loadu_epi16' was not declared in this scope; did you mean '_mm512_loadu_epi32'?
  289 | KFR_INTRINSIC u16avx512 read(cunaligned_t, csize_t<32>, const u16* ptr) { return _mm512_loadu_epi16(ptr); }
      |                                                                                  ^~~~~~~~~~~~~~~~~~
      |                                                                                  _mm512_loadu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'kfr::avx512::intrinsics::i16avx512 kfr::avx512::intrinsics::read(kfr::cunaligned_t, cometa::csize_t<32>, const i16*)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:290:82: error: '_mm512_loadu_epi16' was not declared in this scope; did you mean '_mm512_loadu_epi32'?
  290 | KFR_INTRINSIC i16avx512 read(cunaligned_t, csize_t<32>, const i16* ptr) { return _mm512_loadu_epi16(ptr); }
      |                                                                                  ^~~~~~~~~~~~~~~~~~
      |                                                                                  _mm512_loadu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'void kfr::avx512::intrinsics::write(kfr::cunaligned_t, cometa::u8*, const u8avx512&)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:299:70: error: '_mm512_storeu_epi8' was not declared in this scope; did you mean '_mm512_storeu_epi32'?
  299 | KFR_INTRINSIC void write(cunaligned_t, u8* ptr, const u8avx512& x) { _mm512_storeu_epi8(ptr, x.v); }
      |                                                                      ^~~~~~~~~~~~~~~~~~
      |                                                                      _mm512_storeu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'void kfr::avx512::intrinsics::write(kfr::cunaligned_t, cometa::i8*, const i8avx512&)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:300:70: error: '_mm512_storeu_epi8' was not declared in this scope; did you mean '_mm512_storeu_epi32'?
  300 | KFR_INTRINSIC void write(cunaligned_t, i8* ptr, const i8avx512& x) { _mm512_storeu_epi8(ptr, x.v); }
      |                                                                      ^~~~~~~~~~~~~~~~~~
      |                                                                      _mm512_storeu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'void kfr::avx512::intrinsics::write(kfr::cunaligned_t, cometa::u16*, const u16avx512&)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:301:72: error: '_mm512_storeu_epi16' was not declared in this scope; did you mean '_mm512_storeu_epi32'?
  301 | KFR_INTRINSIC void write(cunaligned_t, u16* ptr, const u16avx512& x) { _mm512_storeu_epi16(ptr, x.v); }
      |                                                                        ^~~~~~~~~~~~~~~~~~~
      |                                                                        _mm512_storeu_epi32
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp: In function 'void kfr::avx512::intrinsics::write(kfr::cunaligned_t, cometa::i16*, const i16avx512&)':
C:/Users/Stavros Avramidis/Music/roon-bench/kfr-4.2.0/include/kfr/simd/impl/read_write.hpp:302:72: error: '_mm512_storeu_epi16' was not declared in this scope; did you mean '_mm512_storeu_epi32'?
  302 | KFR_INTRINSIC void write(cunaligned_t, i16* ptr, const i16avx512& x) { _mm512_storeu_epi16(ptr, x.v); }
      |                                                                        ^~~~~~~~~~~~~~~~~~~
      |                                                                        _mm512_storeu_epi32
purpl3F0x commented 4 years ago

Made a pull request that fixes the issue on #101 They are redundant namings for the _si512 equivalents

dancazarin commented 3 years ago

Thank you for your fix. The pull request has been merged into master branch.