_mm_shuffle_epi8函数替换
函数功能:按照shuffle_mask二进制掩码对data进行移位操作,将移位后的数存储在results变量中。
_mm_shuffle_epi8 详细说明,请参考Intrinsics Guide。
- x86上代码:
__m128i results = _mm_shuffle_epi8(data, shuffle_mask);
- 在鲲鹏上替换:
#include <arm_neon.h> #define int8x16_to_8x8x2(v) ((int8x8x2_t) { vget_low_s8(v), vget_high_s8(v) }) int8x16_t results = vcombine_s8(vtbl2_s8(int8x16_to_8x8x2(data),vget_low_s8(shuffle_mask)),vtbl2_s8(int8x16_to_8x8x2(data),vget_high_s8(shuffle_mask)));
父主题: 源码修改类案例