En primer lugar, no recomiendo usar las funciones integradas, ya que no son portátiles (en compiladores del mismo arco).
Utilice intrinsics, GCC does a wonderful job optimizando las intrínsecas SSE en un código aún más optimizado. Siempre puede echar un vistazo al ensamblaje y ver cómo usar SSE para aprovechar todo su potencial.
intrínsecas son fáciles - al igual que las llamadas a funciones normales:
#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)
Por supuesto que hay manera más opciones, SSE es realmente de gran alcance y en mi opinión relativamente fácil de aprender.
¿Sabía que hacer un punto caliente producto de dos matrices de elementos int32 cada uno? – psihodelia
Haz una pregunta y me aseguraré de ayudarte :) – LiraNuna