Für die GCC CFLAGS
Optionen: -msse
, -msse2
, -mssse3
, -msse4
, -msse4.1
, -msse4.2
. Sind sie exklusiv in ihrer Verwendung oder können sie zusammen verwendet werden?Was ist der Unterschied zwischen den Optionen cflgs, -msse, -msse2, -mssse3, -msse4 rtc ..? und wie zu bestimmen?
Mein Verständnis ist, dass die Auswahl, die festgelegt wird, davon abhängt, ob der Zielbogen, auf dem das Programm ausgeführt wird, es unterstützt oder nicht, ist das korrekt?
Wenn ja, woher weiß ich, was mein Zielbogen unterstützt? In Linux cat/proc/cpuinfo, aber was ist, wenn Mac oder Windows?
Danke!
SSE-Anweisungen wurden über verschiedene Generationen von CPUs verbessert/modifiziert. Das Kompilieren für ein 4.2-Ziel schließt die Verwendung des generierten Codes bei älteren Generationen aus. –
danke für die erste Antwort. Also, was soll ich wählen? nur die neueste (ist es-msse4.2)? – yaya
Wenn Sie keine spezielle SIMD-Anforderung haben, kompilieren Sie nur für den kleinsten gemeinsamen Nenner, d. H. Lassen Sie die Schalter -msse aus. –