_mm256_msubadd_pd
È necessario Visual Studio 2010 SP1.
Specifici di Microsoft
Genera l'istruzione FMA4 YMM vfmsubaddpd per eseguire una funzione alternata multiply-add/subtract a virgola mobile con un unico arrotondamento delle origini.
__m256d _mm256_msubadd_pd (
__m256d src1,
__m256d src2,
__m256d src3
);
Parametri
[in] src1
Parametro a 256 bit che contiene quattro valori a virgola mobile a 64 bit.[in] src2
Parametro a 256 bit che contiene quattro valori a virgola mobile a 64 bit.[in] src3
Parametro a 256 bit che contiene quattro valori a virgola mobile a 64 bit.
Valore restituito
Risultato a 256 bit r che contiene quattro valori a virgola mobile a 64 bit.
r[i] := src1[i] * src2[i] + src3[i]; // i even
r[i] := src1[i] * src2[i] - src3[i]; // i odd
Requisiti
Intrinseco |
Architettura |
---|---|
_mm256_msubadd_pd |
FMA4 |
File di intestazione <intrin.h>
Note
Ognuno dei quattro valori a virgola mobile a precisione doppia in src1 viene moltiplicato per il valore corrispondente in src2. Ogni valore di origine pari src3 viene aggiunto al prodotto corrispondente, ogni valore dispari viene sottratto dal prodotto corrispondente e ogni risultato viene archiviato come valore corrispondente nella destinazione. Ogni coppia multiply-add/subtract viene eseguita con un unico arrotondamento alla fine, come se i risultati intermedi venissero calcolati a precisione infinita.
L'istruzione vfmsubaddpd è parte della famiglia FMA4 di istruzioni. Prima di utilizzare questo intrinseco, è necessario assicurarsi che il processore supporti questa istruzione. Per determinare il supporto hardware per questa istruzione, chiamare l'intrinseco __cpuid con InfoType = 0x80000001 e il bit di controllo 16 di CPUInfo[2] (ECX). Questo bit è 1 quando l'istruzione è supportata, e 0 in caso contrario.
Esempio
#include <stdio.h>
#include <intrin.h>
int main()
{
__m256d a, b, c, d;
int i;
for (i = 0; i < 4; i++) {
a.m256d_f64[i] = i;
b.m256d_f64[i] = 2.;
c.m256d_f64[i] = 3.;
}
d = _mm256_msubadd_pd(a, b, c);
for (i = 0; i < 4; i++) printf_s(" %.3lf", d.m256d_f64[i]);
printf_s("\n");
}
Vedere anche
Riferimenti
Altre risorse
Oggetti intrinseci FMA4 aggiunti per Visual Studio 2010 SP1
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Marzo 2011 |
È stato aggiunto questo contenuto. |
Modifica di funzionalità in SP1. |