Para las opciones de GCC CFLAGS
: -msse
, -msse2
, -mssse3
, -msse4
, -msse4.1
, -msse4.2
. ¿Son exclusivos en su uso o pueden usarse juntos?¿Cuál es la diferencia entre las opciones de cflgs sse de -msse, -msse2, -mssse3, -msse4 rtc ..? y cómo determinarlo?
Según tengo entendido, la elección que se establece depende de si el arco de destino, en el que se ejecutará el programa, lo admite o no, ¿es correcto?
En caso afirmativo, ¿cómo podría saber qué sse admite mi arco de destino? En Linux, yo cat/proc/cpuinfo, pero ¿y si Mac o Windows?
Gracias!
Las instrucciones de SSE se han mejorado/modificado durante varias generaciones de CPU. compilar para un objetivo 4.2 evita el uso del código generado en las generaciones anteriores. –
gracias por la primera respuesta. Entonces, ¿qué debería elegir? solo el último (¿es -msse4.2)? – yaya
A menos que tenga un requisito SIMD específico, simplemente compile para el mínimo común denominador, es decir, omita los conmutadores -msse. –