c++ - 是否有与 Sse2 _mm_unpackhi/lo_epi32/64 和 _mm_shuffle_epi8/32 等效的 Neon?

标签 c++ arm sse simd neon

我也对 _mm_cvtsi32_si128 感兴趣,但如果没有,那也没什么大不了的。

对于 shuffle,我知道在某些情况下我可以使用 Neon 等同于 alignr (vext),但它本身并不能涵盖我需要解决的所有情况。

最佳答案

对于 _mm_shuffle_epi8VTBL .

_mm_unpackXX_YYY 最接近的可能是 VMOVL但您可能需要做一些额外的工作才能获得等效的功能,例如

    int32x4_t v = vld1q_s32(p);                   // load vector from p

    int64x2_t vl = vmovl_s32(vget_low_s32(v));    // unpack v into 2 vectors
    int64x2_t vh = vmovl_s32(vget_high_s32(v));

关于c++ - 是否有与 Sse2 _mm_unpackhi/lo_epi32/64 和 _mm_shuffle_epi8/32 等效的 Neon?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208533/

相关文章:

c++ - Clang++/g++ 没有在 Aarch64 上对代码进行矢量化

android - arm64和aarch64的区别

c++ - SIMD 内在和持久变量/状态

c++ - 如何检查 AVX intrinsic __m256 的 inf

c++ - C++17 中已弃用的 auto_ptr 的替代库/模板类

c++ - ADL 和类型定义

c++ - 客户端未收到 UDP 连接响应

ios - 通过应用程序加载程序上传期间,iOS应用程序 “missing 64-bit support”错误

visual-c++ - 更快的组装优化方式在 RGB8 和 RGB32 图像之间转换

c++ - QSerialPort 在应用程序启动之前正在使用