UME::SIMD master (5785acb) does not compile with GCC (AVX2 plugin)
Issue #42
new
I encountered the following problem when compiling VecCore with UME::SIMD backend enabled:
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h: In member function ‘UME::SIMD::SIMDVec_u<long unsigned int, 4u>& UME::SIMD::SIMDVec_u<long unsigned int, 4u>::load(const UME::SIMD::SIMDVecMask<4u>&, const uint64_t*)’:
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:186:43: error: ‘__int64’ was not declared in this scope
mVec = _mm256_maskload_epi64((__int64 const*)p, t0);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:186:51: error: expected ‘)’ before ‘const’
mVec = _mm256_maskload_epi64((__int64 const*)p, t0);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h: In member function ‘UME::SIMD::SIMDVec_u<long unsigned int, 4u>& UME::SIMD::SIMDVec_u<long unsigned int, 4u>::loada(const UME::SIMD::SIMDVecMask<4u>&, const uint64_t*)’:
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:197:43: error: ‘__int64’ was not declared in this scope
mVec = _mm256_maskload_epi64((__int64 const*)p, t0);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:197:51: error: expected ‘)’ before ‘const’
mVec = _mm256_maskload_epi64((__int64 const*)p, t0);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h: In member function ‘uint64_t* UME::SIMD::SIMDVec_u<long unsigned int, 4u>::store(const UME::SIMD::SIMDVecMask<4u>&, uint64_t*) const’:
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:208:37: error: ‘__int64’ was not declared in this scope
_mm256_maskstore_epi64((__int64 *)p, t0, mVec);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:208:46: error: expected primary-expression before ‘)’ token
_mm256_maskstore_epi64((__int64 *)p, t0, mVec);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h: In member function ‘uint64_t* UME::SIMD::SIMDVec_u<long unsigned int, 4u>::storea(const UME::SIMD::SIMDVecMask<4u>&, uint64_t*) const’:
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:219:37: error: ‘__int64’ was not declared in this scope
_mm256_maskstore_epi64((__int64 *)p, t0, mVec);
^
/home/amadio/src/umesimd/plugins/avx2/uint/UMESimdVecUint64_4.h:219:46: error: expected primary-expression before ‘)’ token
_mm256_maskstore_epi64((__int64 *)p, t0, mVec);
^
make[2]: *** [test/CMakeFiles/Math.dir/build.make:63: test/CMakeFiles/Math.dir/mathtest.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:94: test/CMakeFiles/Math.dir/all] Error 2
make: *** [Makefile:139: all] Error 2
Comments (2)
-
reporter -
repo owner Seems like GCC is missing some intrinsics. I've put a local workaround for that. Let me know if it works now.
- Log in to comment
Note: This issue is not present in v0.6.1-stable tag.