Sdílet prostřednictvím


/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

  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 stránku vlastností Vytváření kódu.

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

Programové nastavení tohoto parametru kompilátoru

Viz také

Referenční dokumentace

/arch (minimální architektura procesoru)

Možnosti kompilátoru

Nastavení možností kompilátoru