混合操作 (浮点 SSE2 内部)

[本文档仅供预览,并可能在以后的版本中更改。 Blank topics are included as placeholders.]

Microsoft 专用

有关使用本主题中的代码示例的语法的说明,请参见 使用流 SIMD 扩展的浮点内部

将内部使用 __m128__m128i__m128d 数据类型,在 Itanium 处理器家族 (IPF) (ipf) 处理器不支持。 使用 __m64 数据类型的任何 SSE2 内部在 x64 处理器不支持。

emmintrin.h 头文件包含 SSE2 指令内部函数说明。

__m128d _mm_unpackhi_pd (__m128d a, __m128d b);

            UNPCKHPD
          

交错 a 的上限,双精度浮点值和 b。

r0 := a1
r1 := b1

__m128d _mm_unpacklo_pd (__m128d a, __m128d b);

            UNPCKLPD
          

交错 a 的值较低的,双精度浮点和 b。

r0 := a0
2 := b0

int _mm_movemask_pd (__m128d a);

            MOVMSKPD
          

创建从符号位两个双精度, a的浮点值的两个位掩码。

r := sign(a1) << 1 | sign(a0)

__m128d _mm_shuffle_pd (__m128d a, __m128d b, int i);

            SHUFPD
          

根据掩码 i选择两个特定的双精度,从 a 的浮点值和 b,。 掩码必须是直接的。 为拖曳语义的声明参见 拖曳的宏使用流 SIMD 扩展 2 命令 部分。

请参见

参考

使用流 SIMD 扩展的浮点内部 2 命令