Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica a arquitetura da geração de código em x64. Essas opções se aplicam à versão de direcionamento x64 do compilador. Para obter mais informações sobre /arch outras arquiteturas de destino, consulte /arch (x86), /arch (ARM64) e /arch (ARM).
Sintaxe
/arch:[SSE2AVX10.2|AVX10.1|AVX512|||AVX2|SSE4.2AVX]
Argumentos
/arch:SSE2
Habilita as extensões Intel Streaming SIMD 2. O conjunto de instruções padrão será SSE2 se nenhuma /arch opção for especificada.
/arch:SSE4.2
Habilita o Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Habilita extensões de vetor avançadas da Intel.
/arch:AVX2
Habilita o Intel Advanced Vector Extensions 2.
/arch:AVX512
Habilita o Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Habilita o Intel Advanced Vector Extensions 10 versão 1.
/arch:AVX10.2
Habilita as Extensões de Vetor Avançado da Intel 10 versão 2.
Comentários
A opção /arch permite o uso de determinadas extensões de conjunto de instruções, especialmente para cálculo de vetor, disponíveis em processadores da Intel e do AMD. Em geral, os processadores introduzidos mais recentemente podem dar suporte a extensões além daquelas compatíveis com processadores mais antigos. Você deve consultar a documentação de um processador específico ou testar o suporte à extensão do conjunto de instruções usando __cpuid antes de executar o código usando uma extensão de conjunto de instruções. Você também pode usar o __check_isa_support intrínseco para verificar os recursos da CPU usados com mais frequência.
/arch afeta somente a geração de código de funções nativas. Ao usar /clr para compilar, /arch não tem efeito sobre a geração de código das funções gerenciadas.
As extensões do processador têm as seguintes características:
O modo padrão usa instruções SSE2 para cálculos escalares de ponto flutuante e vetor. Essas instruções permitem o cálculo com vetores de 128 bits de precisão única, precisão dupla e valores inteiros de 1, 2, 4 ou 8 bytes, bem como valores de ponto flutuante escalares de precisão única e de precisão dupla.
SSE4.2usa o conjunto completo de instruções SSE para cálculos de escalares, vetores e vetores inteiros de ponto flutuante.AVXintroduziu uma codificação de instrução alternativa para instruções escalares de vetor e ponto flutuante. Ela permite vetores de 128 bits ou 256 bits e estende todos os resultados de vetor para o tamanho total do vetor. (Para compatibilidade herdada, as instruções de vetor no estilo SSE preservam todos os bits além do bit 127.) A maioria das operações de ponto flutuante é estendida para 256 bits.AVX2estende a maioria das operações de inteiro para vetores de 256 bits e permite o uso de instruções de FMA (Fused Multiply-Add).AVX-512introduziu outra forma de codificação de instrução que permite vetores de 512 bits, mascaramento, arredondamento/transmissão incorporados e novas instruções. O comprimento do vetor padrão paraAVX-512é de 512 bits e pode ser alterado para 256 bits usando o/vlensinalizador.AVX10.1adiciona mais instruções sobreAVX-512. O comprimento do vetor padrão paraAVX10.1é de 256 bits e pode ser alterado para 512 bits usando o/vlensinalizador. Essa opção foi introduzida no Visual Studio 2022 17.13.AVX10.2expande o conjunto de instruções introduzido emAVX10.1. O comprimento do vetor padrão é deAVX10.2256 bits e pode ser aumentado para 512 bits usando o/vlensinalizador.AVX10.2adiciona instruções que são aprimoramentos de instruções herdadas e instruções de aceleração de mídia. Para obter mais informações sobre as novas instruções, consulte a seção 3.1.4 na Especificação de Arquitetura do Intel Advanced Vector Extensions 10.2. As instruções relacionadas à IA nesse documento têm suporte por meio de intrínsecos do MSVC em vez de serem emitidas diretamente porque o MSVC não dá suporte a seus tipos de dados. Essa opção do compilador foi introduzida no Visual Studio 2026.
Cada /arch opção também pode habilitar o uso de outras instruções não vetoriais associadas a essa opção. Um exemplo é o uso de determinadas instruções de BMI quando /arch:AVX2 é especificado.
O __AVX__ símbolo do pré-processador é definido quando a opção /arch:AVX, /arch:AVX2, /arch:AVX512/arch:AVX10.1ou /arch:AVX10.2 compilador é especificada.
O __AVX2__ símbolo do pré-processador é definido quando a /arch:AVX2opção , /arch:AVX512, /arch:AVX10.1, ou /arch:AVX10.2 compilador é especificada.
Os __AVX512F__símbolos , __AVX512CD__, __AVX512BW__e __AVX512VL____AVX512DQ__pré-processador são definidos quando a opção /arch:AVX512, /arch:AVX10.1ou /arch:AVX10.2 compilador é especificada.
O __AVX10_VER__ símbolo do pré-processador é definido quando a opção /arch:AVX10.1 ou /arch:AVX10.2 compilador é especificada. Ele indica a versão do AVX10 que o compilador está direcionando. Para obter mais informações, confira Macros predefinidas.
A opção /arch:AVX2 foi introduzida na Atualização 2 do Visual Studio 2013, versão 12.0.34567.1.
O suporte limitado para /arch:AVX512 foi adicionado ao Visual Studio 2017 e expandido no Visual Studio 2019.
O suporte para /arch:AVX10.1 foi adicionado no Visual Studio 2022. O suporte foi /arch:AVX10.2 adicionado ao Visual Studio 2026.
Para definir a opção /arch do compilador no Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter mais informações, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.
Modifique a propriedade Habilitar Conjunto de Instruções Avançadas.
Para definir essa opção do compilador via programação
- Consulte EnableEnhancedInstructionSet.
Confira também
/arch (Arquitetura de CPU mínima)
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC