存储操作 (SSE2 整数内部)

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

Microsoft 专用

以下存储操作内部及其各自的命令是工作在支持 Intel 处理器的流 SIMD 扩展 2 (SSE2) 命令。

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

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

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

void _mm_store_si128 (__m128i *p, __m128i a);

MOVDQA

存储 128 位值。 地址 p 必须是对齐的 16 字节。

*p := a

有关更多信息,请参见 _mm_store_si128

void _mm_storeu_si128 (__m128i *p, __m128i a);

MOVDQU

存储 128 位值。 地址 p 不需要是对齐的 16 字节。

*p := a

有关更多信息,请参见 _mm_storeu_si128

void _mm_maskmoveu_si128(__m128i d, __m128i n, char *p);

MASKMOVDQU

请有条件地存储 d 的字节数组元素解决 p。 高位在该 n 的每个字节确定是否将存储在 d 的相应字节。 地址 p 不需要是对齐的 16 字节。

if (n0[7]) p[0] := d0
if (n1[7]) p[1] := d1
...
if (n15[7]) p[15] := d15

有关更多信息,请参见 _mm_maskmoveu_si128

void _mm_storel_epi64(__m128i *p, __m128i a);

MOVQ

存储值的下半部分 64 位指向由 p。

*p[63:0]:=a0

请参见

参考

整数内存和初始化使用流 SIMD 扩展 2