-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xtensor triggers xsimd error on arm64: <bool, xsimd::neon64> usage of batch type with unsupported type #945
Comments
A bit more additional info
#include <xtensor/xtensor.hpp>
int main()
{
{
xt::xtensor<double, 1> a{0., 1.};
xt::xtensor<double, 1> b = a && 0.;
}
{
xt::xtensor<bool, 1> a{false, true};
//xt::xtensor<bool, 1> b = a && false;
}
return 0;
} |
It's a bug in neon64 then :p |
I confirm the following xsimd-only snippet works on x86-64 but not on aarch64 #include <xsimd/xsimd.hpp>
auto pain() {
xsimd::batch<bool> x,y;
return x && y;
} I'll investigate, thanks for bringing that up! |
In that case it's worth noting that xsimd is passing its own tests on arm64, Does that mean |
@JohanMabille We currently don't have support for |
After some extra digging: we actually don't really support |
armhf is also affected, apparently the same problem from neon, https://ci.debian.net/data/autopkgtest/unstable/armhf/x/xtensor/38875115/log.gz |
Not only for xtensor, it is required to promote types when playing with mixed arithmetic (
bool b1 = true, b2 = false;
bool res = b1 + b2; but I find it ugly and we should definitely avoid this in Also We could imagine aliasing it to This issue is definitely a bug in the definition of |
It was only supported on Intel architectures and wasm, for no clear reason. Provide a unified experience by enforcing batch_bool instead. If someone really wants a batch of bool, then use another type to store it, e.g. uint8_t. Fix #945
It was only supported on Intel architectures and wasm, for no clear reason. Provide a unified experience by enforcing batch_bool instead. If someone really wants a batch of bool, then use another type to store it, e.g. uint8_t. Fix #945
Debian CI tests of xtensor 0.24.7 running against xsimd 10.0.0 (g++ 13.2.0) are finding an error on arm64 architecture.
The test log is https://ci.debian.net/data/autopkgtest/unstable/arm64/x/xtensor/38197207/log.gz (also here)
This is with XSIMD_ENABLE_XTL_COMPLEX (xtl 0.7.5).
An excerpt of the error is
The error report seems to be saying xtensor is attempting to access an unsupported type. It's not clear to me if this should be considered a bug in xsimd or in xtensor. Or xtl.
The text was updated successfully, but these errors were encountered: