Per prima cosa, non consiglio di utilizzare le funzioni integrate - non sono portatili (su compilatori dello stesso arco).
Utilizzare intrinsics, GCC does a wonderful job ottimizzare gli intrinseci SSE in un codice ancora più ottimizzato. È sempre possibile dare un'occhiata all'assieme e vedere come utilizzare SSE per il suo pieno potenziale.
Intrinsics sono facili - proprio come le chiamate alle funzioni normali:
#include <xmmintrin.h>
__m128 vector1 = _mm_set1_ps(4, 3, 2, 1); // Little endian, stored in 'reverse'
__m128 vector2 = _mm_set1_ps(7, 8, 9, 0);
// Addition
__m128 result = _mm_add_ps(vector1, vector2); // result = vector1 + vector 2
// A more advanced function, called shuffle
vector1 = _mm_shuf_ps(vector1, vector1, _MM_SHUFFLE(0,1,2,3));
// vector1 is now (1, 2, 3, 4) (above shuffle reversed it)
Naturalmente ci sono il modo più opzioni, SSE è davvero potente e, a mio parere relativamente facile da imparare.
Sai caldo per fare un prodotto punto di due matrici di elementi int32 ciascuno? – psihodelia
Fai una domanda per questo, e farò in modo di aiutare :) – LiraNuna