Witam wszystkich Próbuję użyć intrinsics intel jak takProblemy z intrinsics intel
void test()
{
uint16_t n1 = 5;
uint16_t n2 = 2;
__m64 vec1, vec2, res;
vec1 = _mm_set_pi16(n1, n1, n1, n1);
vec2 = _mm_set_pi16(n2, n2, n2, n2);
res = _mm_add_pi16(vec1, vec2);
printf("%u %u %u %u \n", vec1[0], vec1[1], vec1[2], vec1[3]);
printf("%u %u %u %u \n", vec2[0], vec2[1], vec2[2], vec2[3]);
printf("%u %u %u %u \n", res[0], res[1], res[2], res[3]);
}
ale dziwne, że jestem coraz to wyniki:
327685 327685 131074 131074
131074 131074 458759 458759
458759 458759 327685 327685
używam Zaćmienie Marsa ... i włączam w to , xmmintrin.h, emmintrin.h.
Proszę może ktoś wyjaśnić, co się stało z tym
Należy prawdopodobnie używając '__m128i' wektory SSE w nowym kodem, a nie 64-bitowy MMX. Obsługa SSE2 jest całkiem bezpieczna, aby założyć ją jako linię podstawową, nawet w 32-bitowym kodzie, i jest gwarantowana dla x86-64. –