a
Size: a a a
a
MA
MA
cВот две вариации на асме (части другой функции, {0,0,0, флоат} лежит в хмм0) :
__m128 hihi(__m128 toDo){
toDo = _mm_shuffle_ps(toDo, toDo, 3);
toDo = (__m128) _mm_shuffle_epi32((__m128i) toDo, 0);
return toDo;
}
movsd xmm1, xmm0Чем второй подход лучше первого?
shufps xmm0, xmm1, 3
pshufd xmm0, xmm0, 0
movups XMMWORD PTR [rsp], xmm0
movq r9, xmm0
shl r9, 32
shr r9, 32
mov dword ptr [rsp], r9d
mov dword ptr [rsp+4], r9d
mov dword ptr [rsp+8], r9d
mov dword ptr [rsp+12], r9d
MA
A
MA
A
MA
MA
A
A
И
С
И
С