-
Notifications
You must be signed in to change notification settings - Fork 281
Description
Using current HEAD or latest tags (8.1.0 for xsimd and 0.7.4 for xtl), creating a xsimd::batch<xtl::xcomplex<double>>
yields a compile-time error.
Minimal working example:
#define XSIMD_ENABLE_XTL_COMPLEX 1
#include <xsimd/xsimd.hpp>
int main()
{
xsimd::batch<xtl::xcomplex<double>> foo;
return 0;
}
The compile error is, using g++ -I xtl/include -I xsimd/include -std=c++14 -c foo.cpp
is:
In file included from xsimd/include/xsimd/memory/../config/../types/../types/./././././xsimd_sse2_register.hpp:16:0,
from xsimd/include/xsimd/memory/../config/../types/../types/././././xsimd_sse3_register.hpp:15,
from xsimd/include/xsimd/memory/../config/../types/../types/./././xsimd_ssse3_register.hpp:15,
from xsimd/include/xsimd/memory/../config/../types/../types/././xsimd_sse4_1_register.hpp:15,
from xsimd/include/xsimd/memory/../config/../types/../types/./xsimd_sse4_2_register.hpp:15,
from xsimd/include/xsimd/memory/../config/../types/../types/xsimd_fma3_sse_register.hpp:15,
from xsimd/include/xsimd/memory/../config/../types/xsimd_all_registers.hpp:12,
from xsimd/include/xsimd/memory/../config/xsimd_arch.hpp:19,
from xsimd/include/xsimd/memory/xsimd_aligned_allocator.hpp:27,
from xsimd/include/xsimd/xsimd.hpp:41,
from foo.cpp:2:
xsimd/include/xsimd/memory/../config/../types/../types/././././././xsimd_register.hpp: In instantiation of ‘struct xsimd::types::simd_register<xtl::xcomplex<double>, xsimd::sse2>’:
xsimd/include/xsimd/types/xsimd_batch.hpp:46:11: required from ‘class xsimd::batch<xtl::xcomplex<double> >’
foo.cpp:6:41: required from here
xsimd/include/xsimd/memory/../config/../types/../types/././././././xsimd_register.hpp:31:13: error: static assertion failed: usage of simd_register with unsupported type
static_assert(!Arch::supported() || has_simd_register<T, Arch>::value,
^~~~~~~~~~~~~
In file included from xsimd/include/xsimd/xsimd.hpp:46:0,
from foo.cpp:2:
xsimd/include/xsimd/types/xsimd_batch.hpp: In instantiation of ‘class xsimd::batch<xtl::xcomplex<double> >’:
foo.cpp:6:41: required from here
xsimd/include/xsimd/types/xsimd_batch.hpp:53:81: error: no type named ‘register_type’ in ‘struct xsimd::types::simd_register<xtl::xcomplex<double>, xsimd::sse2>’
using register_type = typename types::simd_register<T, A>::register_type; ///< SIMD register type abstracted by this batch.
With xsimd 7.6.0, a similar example (replacing the batch declaration with xsimd::simd_type<xtl::xcomplex<double>> foo
works.
Note: I've gotten there when compiling xtensor with -DXTENSOR_USE_XSIMD=ON
in the test_xcomplex
target. Let me know if this issue should be reported to xtensor.
Metadata
Metadata
Assignees
Labels
No labels