xsimd
xsimd copied to clipboard
C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, AVX512, NEON, SVE))
Some bitwise casts functions (from and to unsigned integers) are missing.
We shoudl do two things: 1. rename equal method to `eq` so that it matches the regular kernels 2. change the implementation in batch_bool_float kernel to use ! not_equal which...
The operator `
Currently, it's not possible to load from a bool pointer. E.g. ```cpp xt::uvector xbools(100, true); xsimd::load_unaligned(&xbools[0]) ``` fails with substitution errors. Now it's actually a question *what* we should do...
There are some small failures with loading 64bit integers from char for `-arch=nocona` ``` [ RUN ] xsimd.api_load 1: lhs = 67305985 - rhs = 1 2: lhs = 134678021...
Mathematical functions of `xsimd` should accept integral types when their standard counterparts do.
power, trigonometric and hyperbolic tests are failing for NEON instructions because of potential truncation.
`cvttps` uses truncation and `3/5 == 0` becomes true which seems to be the default behavior in C++
SIMDified arange can give a ~4x improvement about `std::iota` and for loops.