2016-04-20 19 views
2

Ich recherchierte über String-Anweisungen, die in AVX oder AVX2 ISA unterstützt wird, aber ich kann keine 256-Bit-Zeichenfolge Vergleichsbefehl wie SSE4.2 finden Wenn es einen String-Vergleich, den ich nicht finden kann, wo finde ich sie? Andernfalls Warum unterstützt AVX/AVX2 ISA keine 256-Bit-String-Anweisungen? Ich finde auch heraus, dass AVX2 mullo für unsigned short als 16bit unsigned Integer nicht unterstützt und ich kenne den Grund nicht. Weil es in SSE4.2 unterstützt wurde.Unterstützt AVX oder AVX2 256-Bit-String-Anweisungen und Mullo für unsigned short?

+0

Eine Frage pro Frage bitte. –

Antwort

3

256-Bit-Zeichenfolge vergleichen Anweisungen - nein, es gibt keine in AVX/AVX2 (oder AVX-512 für diese Angelegenheit) - nur die 128-Bit-Anweisungen in SSE 4.2.

mullo für unsigned short - dies ist nicht erforderlich, da das Ergebnis das gleiche wäre wie mit einem vorzeichenbehafteten kurzen mullo. Es ist nur die nulhi-Anweisung, die in signierten und unsignierten Varianten vorhanden sein muss.

+0

Was ist der Grund, warum sie keinen String-Befehlssatz zu Intel AVX hinzufügen? Weil es nicht nützlich ist oder weil es im General Purpose Processor nicht akzeptabel ist, spezielle Anweisungen hinzuzufügen? – ADMS

+1

@ADMS: Nun, ich arbeite nicht für Intel, aber ich würde eine Vermutung wagen, dass es wahrscheinlich nicht viel Sinn hat - diese Art von Operation neigt dazu, sowieso I/O gebunden zu sein (da es unwahrscheinlich ist, dass es Teil eines sein würde Sequenz von anderen SIMD-Befehlen), so dass es wenig von der Implementierung von breiteren Versionen der existierenden 128-Bit-String-Anweisungen zu gewinnen gäbe. –

+1

Wären sie nicht immer noch nützlich? Vor allem der 16bit RANGES Modus, der darunter leidet, dass es nicht so viele Bereiche gibt, aber auch ANY, könnte schön sein, einen größeren Satz zu haben. OTOH das wäre bestimmt noch langsamer als es schon ist – harold