Как справедливо говорит @Mysticial
, используйте встроенные функции вместо необработанного ассемблера:
#include <stdio.h>
#include <smmintrin.h> // SSE 4.1
int main()
{
__m128 vek = _mm_set_ps(4.0, 3.0, 2.0, 1.0);
__m128 vec = _mm_set_ps(1.0, 2.0, 3.0, 4.0);
__m128 result = _mm_dp_ps(vek, vec, 0xff);
printf("result = { %vf }\n", result);
return 0;
}
Обратите внимание, что не все компиляторы поддерживают спецификатор формата %v
для значений SIMD - если ваш компилятор не поддерживаетВам нужно будет реализовать подходящий метод для печати результата, например, использовать объединение.