¿Dónde puedo encontrar una referencia oficial que enumere el funcionamiento de las funciones intrínsecas de la ESS?
¿Existe una referencia oficial que enumere el funcionamiento de las funciones intrínsecas de SSE para GCC, es decir, las funciones en los archivos de encabezado <*mmintrin.h>?
Además del manual en PDF vol.2 de Intel, también hay una guía intrínseca en línea .
La Guía Intel® Intrinsics contiene información de referencia para Intel intrinsics, que brindan acceso a instrucciones de Intel como Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX) e Intel® Advanced Vector Extensions 2 ( Intel® AVX2).
Tiene una búsqueda de texto completo, por lo que se puede encontrar un intrínseco por su nombre, o por instrucción de la CPU, característica de la CPU, etc. También tiene un control sobre qué extensión ISA mostrar. Esto permite, por ejemplo, no buscar KNC que probablemente no podrías usar, o MMX que es mucho menos útil hoy en día.
Véase también la etiqueta wiki parasseetiqueta para enlaces a guías y un par de tutoriales, así como esta documentación oficial.
Descubrí que estos encabezados eran necesarios para invocar las diferentes versiones de SSE desde GCC:
Para SSE2
extern "C"
{
#include <emmintrin.h>
#include <mmintrin.h>
}
Para SSE2
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.