c++ c gcc sse simd

c++ - Referencia de funciones intrínsecas de SSE



gcc simd (5)

¿Alguien sabe de una referencia que enumera el funcionamiento de las funciones intrínsecas de SSE para gcc, es decir, las funciones en los archivos de encabezado <* mmintrin.h>?

Gracias.


Además de toda la documentación en PDF en línea ya mencionada, también hay una utilidad muy útil que resume todas las instrucciones y los intrínsecos y los grupos, por tecnología. Se ejecuta en Linux, Windows y Mac OS X. Está escondido en la página de tecnología AVX de Intel, pero es igualmente útil para la programación SSE. Vaya a http://software.intel.com/en-us/articles/intel-intrinsics-guide y luego seleccione Intel Intrinsics Guide para su plataforma de elección.

ACTUALIZAR

Ahora hay una versión en línea de la guía de intrínsecos , por lo que ya no necesita instalar nada, y siempre está actualizada.


Encontré estos encabezados necesarios para invocar las diferentes versiones de SSE de GCC:

  • Para SSE2:

extern "C" { #include <emmintrin.h> #include <mmintrin.h> }

  • Para SSE3:

extern "C" { #include <pmmintrin.h> #include <immintrin.h> // (Meta-header) }

  • Para SSE4:

extern "C" { #include <smmintrin.h> }

En las versiones modernas de los compiladores, todos los encabezados parecen ser comunes a Visual Studio y GCC.


Estos vienen originalmente de Intel. El compilador Intel C ++ describe aquellos en su manual . ¡AMD probablemente tenga su propio manual que contiene los de 3Dnow! Deberá comparar la disponibilidad de aquellos con el *mmintrin.h enviado con su versión de GCC.