/arch (arquitetura de CPU mínimo)
Especifica a arquitetura para a geração de código usando o SSE (Streaming SIMD Extensions) e instruções Streaming SIMD Extensions 2 (SSE2).
/arch:[SSE|SSE2]
Comentários
![]() |
---|
/arch está disponível somente quando compilar para a plataforma x86. Essa opção compilador não está disponível durante a compilação de x64 ou Itanium. |
As instruções SSE existem em vários processadores Pentium e AMD Athlon.As instruções SSE2 só existem no processador Pentium 4.
/arch:SSE permite que o compilador a usar as instruções SSE, e /arch:SSE2 permite que o compilador a usar as instruções SSE2.
_M_IX86_FP indica que, se houver, /arch opção do compilador foi usada; consulte Macros predefinidas Para obter mais informações.
O otimizador escolhe quando e como usar as instruções SSE e SSE2 quando /arch foi especificado. Instruções SSE e SSE2 serão usadas para alguns cálculos de ponto flutuante escalar, quando for determinado que é mais rápido para usar as instruções SSE/SSE2 e registros em vez de ponto flutuante de 87 x registrar pilha.sistema autônomo resultado, seu código irá, na verdade, usar uma mistura de 87 x e SSE/SSE2 para cálculos de ponto flutuante.Além disso, com /arch:SSE2Instruções SSE2 podem ser usadas para algumas operações inteiro de 64 bit.
Além de usando as instruções SSE e SSE2, o compilador também irá usar outras instruções que estão presentes nas revisões de processadores que suportam SSE e SSE2.Um exemplo é a instrução CMOV que apareceu pela primeira vez na revisão dos processadores Intel Pentium Pro.
Durante a compilação de /CLR (Common linguagem tempo de execução compilação), /arch não tem efeito sobre a geração de código para funções gerenciadas. /arch afeta somente a geração de código para funções nativas.
/arch e / QIfist (Suprimir _ftol) não pode ser usado no compiland mesmo.
Em particular, se o usuário não usar _controlfp Para modificar a palavra de controle do FP, em seguida, o código de inicialização de time de execução definirá o 87 x campo do controle de precisão FPU controle palavra para 53 bit, para que todas as float e double operações dentro de uma expressão ocorrerá com significando de 53 bit e 15 bit expoente. Todas as operações de precisão simples SSE, no entanto, usará um expoente de significando/8 bit de 24 bit, e as operações de dupla precisão SSE2 usará um expoente significando/11 bit de 53 bit.Para obter mais informações, consulte _control87, _controlfp, __control87_2.
Para ilustrar, essas diferenças são possíveis em uma árvore de expressão única, não em casos onde há uma atribuição de usuário envolvida após cada subexpressão:
r = f1 * f2 + d; // Different results are possible on SSE/SSE2.
Contra:
t = f1 * f2; // Do f1 * f2, round to the type of t.
r = t + d; // This should produce the same overall result
// regardless whether x87 stack or SSE/SSE2 is used.
controlfp não passará o controle MXCSR bits, isso com /arch:SSE2, qualquer funcionalidade que depende de usando controlfp será interrompido.
Para conjunto esta opção do compilador no ambiente de desenvolvimento do Visual Studio
em aberto propriedade Páginas caixa de diálogo.Para obter detalhes, consulte:Como: Abrir o Projeto Propriedade Páginas.
clicar no C/C++ pasta.
clicar no Geração de código página de propriedades.
Modificar o Habilitar o avançado conjunto de instruçõespropriedade .