Frage

Für Testzwecke schreibe ich kurze Montage-Snippets für Intel's Xeon Phi mit dem ICC-Inline-Assembler.Jetzt wollte ich maskierte Vektoranweisungen verwenden, aber ich versägte sie nicht, sie an den Inline-Assembler zu füttern.

für den Code so:

generasacodicetagpre.

Ich erhalte die Fehlermeldung

generasacodicetagpre.

Ich habe viele verschiedene Kombinationen ausprobiert, aber nichts hat funktioniert.Die Compiler-Version ist Intel64 / 13.1UP03 unter Linux unter Verwendung von Gassyntax.

edit: Der obige Code arbeitet tatsächlich mit nicht erweiterter Assembler.Also das:

generasacodicetagpre.

funktioniert, während das folgende nicht ist:

generasacodicetagpre.

Ich denke, es hat etwas mit der Notwendigkeit, mit der Notwendigkeit zu tun, ein doppelte% vor Registernamen im erweiterten Modus zu verwenden.Aber nein, ein einzelner% für das k funktioniert auch nicht.

War es hilfreich?

Lösung

Ich habe die gleiche Frage in der Intel Developer Zone http://software.intel.com/en-us/forums/topic/intel.com/en-us/forums/topic/499145#comment/topic/499145#comment/topic/499145#comment/topic/499145#comment/topic/49563 , die Antwort ist, dass, um die Maskenregister auf dem Xeon PHI im erweiterten Inline-Assembler verwenden zu könnenVerwenden Sie doppelte gelockte Klammern um den Maskenregistermodifikator.

generasacodicetagpre.

Andere Tipps

Ich denke, Sie müssen die maskierte Variante der Anweisung verwenden: vmaskmovpd

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top