Opérations de chargement (SSE2 intrinsèques à virgule flottante)
[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]
Spécifique à Microsoft
Pour plus d'informations sur la syntaxe utilisée dans les exemples de code dans cette rubrique, consultez l' Intrinsèques à virgule flottante utilisation des extensions Streaming SIMD.
Les intrinsèques SSE2 utilisent __m128, __m128i, et les types de données de __m128d , qui ne sont pas pris en charge sur les processeurs (IPF) de la famille de processeurs Itanium. Aucune SSE2 intrinsèque qui utilisent le type de données de __m64 n'est prise en charge sur les processeurs de x64 .
Le fichier d'en-tête emmintrin.h contient des déclarations pour les fonctions intrinsèques de l'instruction SSE2.
__m128d _mm_load_pd (double *p);
MOVAPD
Charge deux double précision, valeurs à virgule flottante. l'adresse p doit être l'octet 16 aligné.
r0 := p[0]
r1 := p[1]
__m128d _mm_load1_pd (double *p);
(MOVSD + shuffling)
Charge une double précision unique, valeur à virgule flottante, en copiant aux deux éléments. l'adresse p n'a pas besoin d'être l'octet 16 aligné.
r0 := *p
r1 := *p
__m128d _mm_loadr_pd (double *p);
(MOVAPD + shuffling)
Charge deux double précision, valeurs à virgule flottante dans l'ordre inverse. l'adresse p doit être l'octet 16 aligné.
r0 := p[1]
r1 := p[0]
__m128d _mm_loadu_pd (double *p);
MOVUPD
Charge deux double précision, valeurs à virgule flottante. l'adresse p n'a pas besoin d'être l'octet 16 aligné.
r0 := p[0]
r1 := p[1]
__m128d _mm_load_sd (double *p);
MOVSD
charge une double précision, valeur à virgule flottante. la double précision supérieure, virgule flottante est définie à zéro. l'adresse p n'a pas besoin d'être l'octet 16 aligné.
r0 := *p
r1 := 0.0
__m128d _mm_loadh_pd (__m128d a, double *p);
MOVHPD
Charge une double précision, la valeur à virgule flottante en double précision supérieure, valeur à virgule flottante du résultat. la double précision inférieure, valeur à virgule flottante est passée d' a. l'adresse p n'a pas besoin d'être l'octet 16 aligné.
r0 := a0
r1 := *p
__m128d _mm_loadl_pd (__m128d a, double *p);
MOVLPD
Charge une double précision, la valeur à virgule flottante en double précision inférieure, valeur à virgule flottante du résultat. la double précision supérieure, valeur à virgule flottante est passée d' a. l'adresse p n'a pas besoin d'être l'octet 16 aligné.
r0 := *p
r1 := a1
Voir aussi
Référence
Opérations en virgule flottante de mémoire et d'initialisation avec les extensions Streaming SIMD 2