2009-07-01 10 views
29

He agregado la configuración x64 a mi proyecto C++ para compilar la versión de 64 bits de mi aplicación. Todo se ve muy bien, pero el compilador da la siguiente advertencia:Opción SSE2 en Visual C++ (x64)

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'` 

¿Hay optimización SSE2 realmente no está disponible para proyectos de 64 bits?

Respuesta

41

Parece que todos los procesadores de 64 bits tienen SSE2. Como la opción del compilador siempre está activada de manera predeterminada, no es necesario encenderla manualmente.

De Wikipedia:

instrucciones SSE: La arquitectura AMD64 original adoptado SSE y SSE2 de Intel como las instrucciones básicas. Las instrucciones SSE3 se agregaron en abril de 2005. SSE2 reemplaza la precisión IEEE de 80 bits del conjunto de instrucciones x87 con la opción de matemática IEEE de 32 bits o de coma flotante de 64 bits. Esto proporciona operaciones de coma flotante compatibles con muchas otras CPU modernas. Las instrucciones SSE y SSE2 también se han ampliado para operar en los ocho nuevos registros XMM. SSE y SSE2 están disponibles en modo de 32 bits en los procesadores x86 modernos; sin embargo, si se usan en programas de 32 bits, esos programas solo funcionarán en sistemas con procesadores que tengan la función. Esto no es un problema en los programas de 64 bits, , ya que todos los procesadores AMD64 tienen SSE y SSE2, por lo que usar instrucciones SSE y SSE2 en lugar de x87 no reduce el conjunto de máquinas en las que se pueden ejecutar los programas x64. SSE y SSE2 son generalmente más rápidos que, y duplican la mayoría de las características de las instrucciones tradicionales x87, MMX y 3DNow !.

+4

sí, SSE2 es la única opción en el modo de 64 bits. La antigua FPU x87 ya no está disponible. – jalf

+1

¿por qué aparece el error? –

+4

No es un error, es una advertencia, y está ahí para advertirle que la bandera no está haciendo lo que cree que está haciendo. –

3

Entiendo la advertencia que aparece si elige SSE2, aunque todavía es una tontería. Sin embargo, sigue recibiendo la advertencia si selecciona/arch: AVX. Estoy seguro de que se solucionará con SP1. Es un poco basura y una molestia.

Cuestiones relacionadas