Hallo allerseits Ich versuche, das Intel-Spezifika zu verwenden, wie soProbleme mit Intel-Spezifika
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]);
}
aber die seltsame Sache, die ich erhalte diese Ergebnisse:
327685 327685 131074 131074
131074 131074 458759 458759
458759 458759 327685 327685
ich benutze Eclipse Mars ... und ich schließe die mmintrin.h, xmmintrin.h, emmintrin.h.
Bitte kann mir jemand erklären, was diese falsch mit
sollten Sie wahrscheinlich '__m128i' SSE Vektoren in neuem Code verwenden, nicht 64-Bit-MMX. Die SSE2-Unterstützung ist selbst in 32-Bit-Code als Baseline ziemlich sicher und für x86-64 garantiert. –