最佳答案
由于您未指定,因此我假设的目的是使用SSE内部函数。我还要假设至少有SSE2可用,因为这基本上是这些天x86-64设置的基准……
上面描述的一种完全文字的方式是简单地复制输入的低64位,并通过_mm_move_epi64()
将高64位清零
__m128 lo2(__m128 x)
{
return _mm_castsi128_ps(_mm_move_epi64(_mm_castps_si128(x)));
}
并使用
_mm_move_sd()
复制输入的高64位,并从零复制低64位__m128 hi2(__m128 x)
{
return _mm_castpd_ps(_mm_move_sd(_mm_castps_pd(x), _mm_setzero_pd()));
}
工作示例here
关于c++ - 移动__m128的上下 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59754343/