/arch (x86)
Určuje architekturu pro generování kódu v x 86.Viz také /arch (x64) a /arch (ARM).
/arch:[IA32|SSE|SSE2|AVX|AVX2]
Arguments
/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í.
Poznámky
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.
/archtý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.
/archa /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
Otevřít stránky vlastností dialogového okna pro projekt.Další informace naleznete v tématu Postupy: Otevření stránek vlastností projektu.
Vyberte vlastnosti konfigurace, C/C++ složky.
Vyberte stránku vlastností Vytváření kódu.
Změnit povolit rozšířené sadu instrukcí vlastnost.
Programové nastavení tohoto parametru kompilátoru
- Další informace naleznete v tématu EnableEnhancedInstructionSet.