ARM平台下_mm_mulhi_epi16等SSE指令的NEON等效内联函数查询
SSE 函数对应 NEON 等效实现整理
以下是你提到的5个SSE内联函数的NEON等效实现方案:
_mm_mulhi_epi16:直接等效于NEON的vmulhq_s16,功能为两个有符号16位整数向量逐元素相乘,返回每个乘积的高16位组成的向量。_mm_hadd_epi32:直接等效于NEON的vpaddq_s32,功能为逐对水平相加32位整数,输入两个4元素32位向量,输出的四个元素分别为第一个输入的前两个元素和、第一个输入的后两个元素和、第二个输入的前两个元素和、第二个输入的后两个元素和。_mm_maddubs_epi16:ARMv8.2及以上架构可直接使用vmaddubq_s16完全等效;低版本架构可手动拆分实现:先将无符号8位输入扩展为16位无符号向量、有符号8位输入扩展为16位有符号向量,逐元素相乘后再将相邻两个16位乘积相加得到最终16位结果向量。_mm_madd_epi16:可通过vpaddlq_s16(vmulq_s16(a, b))组合实现,先对两个16位整数向量逐元素相乘,再将相邻两个乘积相加扩展为32位整数,输出4元素32位向量,与原SSE函数功能完全一致。_mm_extract_epi8:根据元素符号类型选择vgetq_lane_u8(向量, 索引)(无符号)或vgetq_lane_s8(向量, 索引),直接返回指定索引位置的8位标量值。
注:使用时请注意向量长度、元素符号类型与原SSE逻辑对齐,避免出现精度或溢出问题。
内容的提问来源于stack exchange,提问作者sunmoon
相关产品推荐
相关产品推荐

