Assembly 将xmm3中的四个浮点转换为内存中的四个整数

Assembly 将xmm3中的四个浮点转换为内存中的四个整数,assembly,x86,sse,sse2,Assembly,X86,Sse,Sse2,我是sse的新手,我很难找到它, 请告诉我转换的好方法是什么 (截断为“(int)float_u”)四个压缩float 我已经在xmm3注册成四个整数并存储 将其存储到内存中(有些类似于“movaps oword[edx+32],xmm3” 存储是清晰的,但我不知道如何转换)如果你重视自己的理智(和空闲时间),请使用内部语言: 如果出于某种原因必须使用asm,则\u mm\u cvttps\u epi32的相应说明为cvttps2dq如果您重视自己的理智(和自由时间),请使用本质: 如果您出于某

我是sse的新手,我很难找到它, 请告诉我转换的好方法是什么 (截断为“(int)float_u”)四个压缩float 我已经在xmm3注册成四个整数并存储 将其存储到内存中(有些类似于“movaps oword[edx+32],xmm3”
存储是清晰的,但我不知道如何转换)

如果你重视自己的理智(和空闲时间),请使用内部语言:


如果出于某种原因必须使用asm,则
\u mm\u cvttps\u epi32
的相应说明为
cvttps2dq

如果您重视自己的理智(和自由时间),请使用本质:


如果您出于某种原因必须使用asm,
\u mm\u cvttps\u epi32
的相应说明是
cvttps2dq

您可以通过使用内部函数而不是在原始asm中尝试这样做来避免很多悲伤。您可以通过使用内部函数而不是在原始asm中尝试这样做来避免很多悲伤
cvtps2dq xmm3,xmm3
工作正常,(我认为没有这样的东西(在sse助记符中有点丢失),但它确实存在)从Intel的AVX页面获取AVX intrinsics指南-它在Linux/Windows/Mac.alrrite
cvtps2dq xmm3的独立实用程序中以很好的摘要格式提供了所有sse intrinsic和指令(当然还有AVX),xmm3
工作正常,(我认为没有这样的东西(在sse助记符中有些丢失),但它确实存在)从Intel的AVX页面获取AVX intrinsics指南-它在Linux/Windows/Mac的独立实用程序中以很好的摘要格式提供了所有sse Intrinsic和指令(当然还有AVX)。
int32_t *dest;
__m128 vf = _mm_set_ps(4.0f, 3.0f, 2.0f, 1.0f);
__m128i vi = _mm_cvttps_epi32(vf); // 4 x float -> 4 x int (with truncation)
_mm_store_epi32(dest, vi); // NB: use _mm_storeu_epi32 if `dest` not aligned