我是sbie的新手,我很难找到它, 请告诉我转换的好方法是什么 (截断为“(int)float_”)四个打包浮点数 我在xmm3注册到四个整数和存储 它进入记忆(有些像“movaps oword [edx + 32],xmm3” 存储很清楚,但我找不到如何转换)
答案 0 :(得分:3)
如果你重视自己的理智(和空闲时间),请使用内在因素:
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
如果由于某种原因必须使用asm,则_mm_cvttps_epi32
的相应说明为cvttps2dq
。