You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I cannot compile any code using Vc with the Intel C/C++ compiler 17.0.0. Please see below for details:
antares ~ $ icc --version
icc (ICC) 17.0.0 20160721
Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
antares ~ $ cat test.cc
#include <Vc/Vc>
int main()
{
return 0;
}
antares ~ $ icc -Wall -std=c++11 -march=native -o test test.cc
In file included from /usr/include/Vc/vector.h(192),
from /usr/include/Vc/Vc(31),
from test.cc(1):
/usr/include/Vc/common/simdarray.h(506): error: bad attribute argument substitution
class alignas(((Common::nextPowerOfTwo(N) * (sizeof(V) / V::size()) - 1) & 127) +
^
detected during:
instantiation of class "Vc_1::SimdArray<T, N, V, Wt> [with T=unsigned short, N=32UL, V=Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, Wt=16UL]" at line 108 of "/usr/include/Vc/scalar/../common/../traits/type_traits.h"
instantiation of class "Vc_1::Traits::vector_size_internal<T, true> [with T=Vc_1::Traits::decay<Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>>]" at line 172 of "/usr/include/Vc/scalar/../common/../traits/type_traits.h"
instantiation of class "Vc_1::Traits::simd_vector_size<T> [with T=Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>]" at line 1357
processing of template argument list for "Vc_1::result_vector_type_internal::evaluate" based on template arguments <short, Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>> at line 1411
instantiation of type "Vc_1::result_vector_type<short, Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>>" at line 1414
In file included from /usr/include/Vc/vector.h(192),
from /usr/include/Vc/Vc(31),
from test.cc(1):
/usr/include/Vc/common/simdarray.h(83): error: bad attribute argument substitution
((Common::nextPowerOfTwo(N) * (sizeof(VectorType_) / VectorType_::size()) - 1) & 127) +
^
detected during:
instantiation of class "Vc_1::SimdArray<T, N, VectorType_, N> [with T=unsigned short, N=16UL, VectorType_=Vc_1::Common::select_best_vector_type<unsigned short, 16UL>]" at line 532
instantiation of class "Vc_1::SimdArray<T, N, V, Wt> [with T=unsigned short, N=32UL, V=Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, Wt=16UL]" at line 108 of "/usr/include/Vc/scalar/../common/../traits/type_traits.h"
instantiation of class "Vc_1::Traits::vector_size_internal<T, true> [with T=Vc_1::Traits::decay<Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>>]" at line 172 of "/usr/include/Vc/scalar/../common/../traits/type_traits.h"
instantiation of class "Vc_1::Traits::simd_vector_size<T> [with T=Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>]" at line 1357
processing of template argument list for "Vc_1::result_vector_type_internal::evaluate" based on template arguments <short, Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>> at line 1411
instantiation of type "Vc_1::result_vector_type<short, Vc_1::SimdArray<unsigned short, 32UL, Vc_1::Common::select_best_vector_type<unsigned short, 32UL>, 16UL>>" at line 1414
In file included from /usr/include/Vc/vector.h(229),
from /usr/include/Vc/Vc(31),
from test.cc(1):
/usr/include/Vc/common/simdmaskarray.h(56): error: bad attribute argument substitution
((Common::nextPowerOfTwo(N) * (sizeof(VectorType_) / VectorType_::size()) - 1) & 127) +
^
detected during instantiation of class "Vc_1::SimdMaskArray<T, N, VectorType_, N> [with T=int, N=4UL, VectorType_=Vc_1::SSE::int_v]" at line 85 of "/usr/include/Vc/sse/math.h"
In file included from /usr/include/Vc/vector.h(234),
from /usr/include/Vc/Vc(31),
from test.cc(1):
/usr/include/Vc/common/simdmaskarray.h(285): error: bad attribute argument substitution
class alignas(((Common::nextPowerOfTwo(N) * (sizeof(V) / V::size()) - 1) & 127) +
^
detected during instantiation of class "Vc_1::SimdMaskArray<T, N, V, Wt> [with T=int, N=8UL, V=Vc_1::SSE::int_v, Wt=4UL]" at line 225 of "/usr/include/Vc/avx/math.h"
compilation aborted for test.cc (code 2)
The text was updated successfully, but these errors were encountered:
Thank you. If you are going to make a new release, though, I recommend checking the KNC build too. I've had problems with Vc on KNC even with ICC 16. Best,
Thanks for the heads up. Good that Intel has this bug on its plate. (I seriously sometimes wonder about their QA. ICC has way more regressions than any other compiler I work with.)
In case you need it: The workaround required moving the alignas from the class declaration down to the first data member of the class.
I cannot compile any code using Vc with the Intel C/C++ compiler 17.0.0. Please see below for details:
The text was updated successfully, but these errors were encountered: