web-dev-qa-db-fra.com

SSE référence des fonctions intrinsèques

Quelqu'un connaît-il une référence répertoriant le fonctionnement des fonctions intrinsèques SSE pour gcc, c'est-à-dire les fonctions dans les fichiers d'en-tête <* mmintrin.h>?

Merci.

52
NGaffney

En plus de toute la documentation en ligne PDF déjà mentionnée, il existe également un utilitaire très utile qui résume toutes les instructions et les intrinsèques et les regroupe par technologie. Il fonctionne sous Linux, Windows et Mac OS X Il est caché sur la page de la technologie AVX d'Intel mais il est également utile pour la programmation SSE. Allez sur http://software.intel.com/en-us/articles/intel- intrinsics-guide puis sélectionnez le Intel Intrinsics Guide pour la plate-forme de votre choix.

MISE À JOUR

Il y a maintenant un version en ligne du guide intrinsèque , vous n'avez donc plus besoin d'installer quoi que ce soit, et il est toujours à jour.

43
Paul R

J'ai trouvé que ces en-têtes étaient nécessaires pour appeler les différentes versions de SSE de GCC:

  • Pour SSE2:
extern "C"
{
#include <emmintrin.h>
#include <mmintrin.h>
}
  • Pour SSE3:
extern "C" 
{
#include <pmmintrin.h>
#include <immintrin.h>   // (Meta-header)
}
  • Pour SSE4:
extern "C" 
{
#include <smmintrin.h>
}

Dans les versions modernes des compilateurs, tous les en-têtes semblent être communs à Visual Studio et GCC.

13
Jose Luis Blanco

tableau SSEPlus sur les intrinsèques est très facile à utiliser dans la plupart des cas.

9
alecco

Les intrinsèques GCC sont des implémentations des intrinsèques du compilateur Intel. Ils sont documentés dans Intel® 64 et IA-32 Architectures Developer's Manual: Vol. 2C - Annexe C.

6
caf

Ceux-ci proviennent à l'origine d'Intel. Le compilateur Intel C++ les décrit dans son manuel . AMD a probablement son propre manuel contenant ceux de 3Dnow! Vous devrez comparer la disponibilité de ceux-ci avec le *mmintrin.h fourni avec votre version de GCC.

3
wilx