AVX2 transcendentals intrinsics (#329)
Provides the following transcendentals intrinsics: * `nmc_mm256_exp_pd` * `nmc_mm256_log_pd` * `nmc_mm256_pow_pd` * `nmc_mm256_frexp_pd` The first three are the equivalent of the corresponding SVML intrinsics without the `nmc` prefix. The last one is used by the `log` function, but I decided it's nice to have it public. All results are tested against full precision standard library implementation and provide equal results (except for the `pow` case). `NaN`s and infinities are treated according to the standard. Limitations: * Subnormals are treated as zeros by `frexp` and as a result by `log`.
Showing
- ATTRIBUTIONS.md 24 additions, 0 deletionsATTRIBUTIONS.md
- modcc/backends/avx2.hpp 27 additions, 5 deletionsmodcc/backends/avx2.hpp
- modcc/simd_printer.hpp 19 additions, 10 deletionsmodcc/simd_printer.hpp
- src/backends/multicore/intrin.hpp 408 additions, 0 deletionssrc/backends/multicore/intrin.hpp
- src/util/compat.hpp 21 additions, 0 deletionssrc/util/compat.hpp
- tests/unit/CMakeLists.txt 1 addition, 0 deletionstests/unit/CMakeLists.txt
- tests/unit/test_intrin.cpp 118 additions, 0 deletionstests/unit/test_intrin.cpp
Please register or sign in to comment