Condividi tramite


/arch (x86)

Specifica l'architettura per la generazione di codice su x86.Vedere anche /arch (x64) e /arch (ARM).

/arch:[IA32|SSE|SSE2|AVX]

Argomenti

  • /arch:IA32
    Non specifica le istruzioni avanzate e specifica inoltre x87 per i calcoli a virgola mobile.

  • /arch:SSE
    Abilita l'utilizzo di istruzioni SSE di.

  • /arch:SSE2
    Abilita l'utilizzo di istruzioni SSE2.Si tratta dell'istruzione predefinita su piattaforme x86 se nessuna opzione di /arch è specificata.

  • /arch:AVX
    Consente l'utilizzo Intel avanzate di istruzioni delle estensioni vettoriali.

Note

Le istruzioni SSE e SSE2 sono disponibili in vari processori Intel e AMD.Le istruzioni AVX esistono nei processori Intel Sandy Bridge e AMD Bulldozer.

La macro di _M_IX86_FP indica quale, se presente, l'opzione del compilatore di /arch è stato utilizzato.Per ulteriori informazioni, vedere Macro predefinite.

L'utilità di ottimizzazione decide quando e come utilizzare le istruzioni SSE e SSE2 quando /arch è specificato.Vengono utilizzati SSE e SSE2 per i calcoli a virgola mobile scalari quando determina che è più veloce utilizzare istruzioni SSE/SSE2 e registra anziché lo stack di registro a virgola mobile x87.Di conseguenza, nel codice verrà utilizzata una combinazione di entrambe le istruzioni x87 e SSE/SSE2 per i calcoli a virgola mobile.Inoltre, con /arch:SSE2, SSE2 possono essere utilizzate per alcune operazioni Integer a 64 bit.

Oltre alle istruzioni SSE e SSE2, il compilatore utilizza anche altre istruzioni presenti nelle revisioni del processore che supportano SSE e SSE2.Un esempio è rappresentato dall'istruzione CMOV, introdotta per la prima volta nella revisione Pentium Pro dei processori Intel.

Quando si utilizza /clr per compilare, /arch non influisce sulla generazione di codice per le funzioni gestite./arch influisce solo sulla generazione di codice per le funzioni native.

/arch e /QIfist non possono essere utilizzati nello stesso modulo.In particolare, se non si utilizza _controlfp per modificare la parola di controllo di FP, gli insiemi di codice di avvio di runtime del campo di precisione- controllo di parola di controllo x87 FPU a 53 bit.Di conseguenza, ogni valore float e double operazione in un'espressione utilizza un significand a 53 bit e un esponente a 15 bit.Tuttavia, ogni precisione singola operazione di SSE utilizza i 24 significand di bit e un esponente a 8 bit e le operazioni a precisione doppia SSE2 utilizzano un significand a 53 bit e un esponente a 11 bit.Per ulteriori informazioni, vedere _control87, _controlfp, __control87_2.Queste differenze sono possibili in una struttura ad albero dell'espressione, ma non nei casi in cui è presente un'assegnazione dell'utente dopo ciascuna sottoespressione.Si consideri quanto segue:

    r = f1 * f2 + d;  // Different results are possible on SSE/SSE2.

invece di:

   t = f1 * f2;   // Do f1 * f2, round to the type of t.
   r = t + d;     // This should produce the same overall result 
                  // whether x87 stack is used or SSE/SSE2 is used.

controlfp non modifica i bit di controllo MXCSR.Di conseguenza, con /arch:SSE2, qualsiasi funzionalità che dipende dall'utilizzo di controlfp verrà interrotta.

Per impostare questa opzione del compilatore per SSE o SSE2 in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto.Per ulteriori informazioni, vedere Procedura: aprire le pagine delle proprietà dei progetti.

  2. Selezionare la cartella C/C++.

  3. Selezionare la pagina Generazione codice.

  4. Modificare la proprietà Attiva set di istruzioni avanzate.

Per impostare l'opzione del compilatore /arch:AVX in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto.Per ulteriori informazioni, vedere Procedura: aprire le pagine delle proprietà dei progetti.

  2. Selezionare la cartella C/C++.

  3. Selezionare la pagina delle proprietà Riga di comando.

  4. Nella casella Opzioni aggiuntive, aggiungere /arch:AVX.

Per impostare l'opzione del compilatore a livello di codice

Vedere anche

Riferimenti

/arch (Architettura minima della CPU)

Opzioni del compilatore

Impostazione delle opzioni del compilatore