Arm 查找与sse指令相对应的neon指令

Arm 查找与sse指令相对应的neon指令,arm,sse,simd,neon,Arm,Sse,Simd,Neon,我想知道Neon指令中SSE指令的等效指令/代码是什么 __m128i a,b,c; c = _mm_packs_epi32(a, b); 将a和b中的8个有符号32位整数打包为有符号16位整数并饱和 我检查了ARM站点上的等效说明,但没有找到任何等效说明。 此封装/饱和操作属于NEON中的说明类别: VQMOVN(向量饱和移动和缩小)将操作数向量的每个元素复制到目标向量的对应元素。结果元素的宽度是操作数元素宽度的一半,值饱和到结果宽度。没有直接执行所需操作的指令,但构建一个操作的所有构建块都

我想知道Neon指令中SSE指令的等效指令/代码是什么

__m128i a,b,c;
c = _mm_packs_epi32(a, b);
将a和b中的8个有符号32位整数打包为有符号16位整数并饱和

我检查了ARM站点上的等效说明,但没有找到任何等效说明。

此封装/饱和操作属于NEON中的说明类别:


VQMOVN(向量饱和移动和缩小)将操作数向量的每个元素复制到目标向量的对应元素。结果元素的宽度是操作数元素宽度的一半,值饱和到结果宽度。

没有直接执行所需操作的指令,但构建一个操作的所有构建块都在那里:

饱和/狭窄指令为:

int16x4_t vqmovn_s32 (int32x4_t)  
此内在值从有符号32位饱和为有符号16位整数,返回64位宽变量中的四个窄整数

将这些组合到您的_mm_packs_epi32中很容易:只需对a和b进行组合,然后组合结果:

  int32x4_t a,b;
  int16x8_t c;

  c = vcombine_s16 (vqmovn_s32(a), vqmovn_s32(b));

您可能需要交换vcombine_s16参数的顺序。

您能告诉我一条与_mm_storel_epi64等效的neon指令吗?我的解决方案是使用vget_lang(64x2,1)获得较低的64位寄存器,然后使用vst1q进行存储。它是否正确?(psst,不确定是否标记要迁移,但我认为)您能告诉我,neon指令相当于_mm_storel_epi64。我的解决方案是使用vget_lang(int64x2_t,1)获得较低的64位寄存器,然后使用vst1q进行存储。是否正确?另请参见页眉提供了许多常见的页眉。