Doporučujeme používat Visual Studio 2017.

/arch (x86)

 

Nejnovější dokumentaci k sadě Visual Studio 2017 najdete tady.

Určuje architekturu pro generování kódu v x 86. Viz také /arch (x64) a /arch (ARM).

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

/arch:IA32
Určuje žádné rozšířené pokyny a také určuje x 87 pro výpočty s plovoucí desetinnou čárkou.

/arch:SSE
Umožňuje použití SSE instrukcí.

/arch:SSE2
Umožňuje použití SSE2 instrukcí. Toto je výchozí pokyny k x 86 platformy, pokud žádné /arch je zadán parametr.

/arch:AVX
Umožňuje použití Intel Advanced Vector rozšíření instrukcí.

/arch:AVX2
Umožňuje použití Intel Advanced Vector rozšíření 2 instrukcí.

Pokyny SSE a SSE2 existovat v různých Intel a AMD procesorů. Pokyny AVX existovat v Most Intel Sandy procesory a procesory AMD Bulldozer. Pokyny AVX2 jsou podporovány Intel Haswell a Broadwell procesory a AMD rýpadla procesory.

_M_IX86_FP, __AVX__ a __AVX2__ makra vyberte, které, pokud existuje, /arch Možnosti kompilátoru byl použit. Další informace naleznete v tématu Předdefinovaná makra. /arch:AVX2 Možnost a __AVX2__ makra byla zavedena v aktualizaci Visual Studio 2013 Update 2, verze 12.0.34567.1.

Zvolí okně Optimalizace, kdy a jak postupujte podle pokynů SSE a SSE2 při /arch je zadán. Používá SSE a SSE2 pokyny pro některé skalární s plovoucí desetinnou čárkou výpočty při Určuje, zda je rychlejší používat SSE/SSE2 pokyny a zaregistruje namísto s plovoucí desetinnou čárkou x 87 zaregistrovat zásobníku. V důsledku toho váš kód může ve skutečnosti použijte kombinaci x 87 a SSE/SSE2 pro výpočty s plovoucí desetinnou čárkou. Také se /arch:SSE2, SSE2 pokyny lze použít pro některé operace 64bitové celé číslo.

Kromě použití SSE a SSE2 pokynů, kompilátor používá také další pokyny, které jsou k dispozici na revize procesoru, které podporují SSE a SSE2. Příkladem je CMOV instrukce, nejprve se nacházely na revizi procesory Intel Pentium Pro.

Vzhledem k tomu, že x 86 překladače generuje kód, který používá SSE2 pokyny ve výchozím nastavení, je třeba zadat /arch:IA32 Zakázání generování SSE a SSE2 pokyny pro x 86 procesory.

/arch týká se pouze generování kódu pro nativní funkce. Při použití /CLR kompilace, /arch nemá žádný vliv na generování kódu pro spravované funkce.

/arch a /QIfist nelze použít na stejném souboru určeného ke kompilaci. Zejména, jestliže je velmi riskantní používat _controlfp Chcete-li upravit slovo DP ovládací prvek, pak běhu spuštění sady x 87 FPU ovládací prvek slovo ovládací prvek přesnosti pole Kód na 53 bitů. Proto každý float a double operace ve výrazu používá 53bitová mantisy a 15-bit exponent. Však každých SSE jednoduchá přesnost operace používá 24bitový mantisy a exponent 8-bit a SSE2 dvojitou přesností operace používají 53bitová mantisy a exponent 11 bitů. Další informace naleznete v tématu _control87, _controlfp, __control87_2. Tyto rozdíly jsou možné u stromu jeden výraz, ale není v případech, kdy zapojen přiřazení uživatelských po jednotlivých dílčím výrazu. Zvažte následující možnosti:

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

Proti:

  
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.  

Chcete-li nastavit tuto možnost kompilátoru pro AVX, AVX2, IA32, SSE nebo SSE2 v sadě Visual Studio

  1. Otevřít stránky vlastností dialogového okna pro projekt. Další informace naleznete v tématu Postupy: Otevření stránek vlastností projektu.

  2. Vyberte Vlastnosti konfigurace, C/C++ složky.

  3. Vyberte generování kódu na stránce vlastností.

  4. Změnit Povolit rozšířené sadu instrukcí vlastnost.

Programové nastavení tohoto parametru kompilátoru

/arch (minimální architektura procesoru)
Možnosti kompilátoru
Nastavení možností kompilátoru

Zobrazit: