AVX log intrinsics (_mm256_log_ps) missing in g++-4.8?

前端 未结 2 1429
温柔的废话
温柔的废话 2020-12-17 22:24

I am trying to utilise some AVX intrinsics in my code and have run into a brick wall with the logarithm intrinsics.

Using the Intel Intrinsics Guide v3.0.1 for Linux

相关标签:
2条回答
  • 2020-12-17 22:49

    As indicated in the comments to your question, that intrinsic doesn't map to an actual AVX instruction; it is an Intel extension to the intrinsic set. The implementation likely uses many underlying instructions, as a logarithm isn't a trivial operation.

    If you'd like to use a non-Intel compiler but want a fast logarithm implementation, you might check out this open-source implementation of sin(), cos(), exp(), and log() functions using AVX. They are based on an earlier SSE2 version of the same functions.

    0 讨论(0)
  • 2020-12-17 23:01

    I've posted my implementation of _mm256_log_pd(__m256d) here: https://stackoverflow.com/a/45898937/1915854 . With some effort you should be able to extend it to 8 packed floats instead of 4 doubles, though you need to revise the bit manipulations. And some parts are easies because you don't need to repack odd-/even-numbered 32-bit components of __m256i into __m128i.

    0 讨论(0)
提交回复
热议问题