Integrierte Assembler-Unterstützung für AVX2 und AVX-512

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Delphi-Compiler


Integrierte Assembler-Module (CHASM und CHASM64), die im Olympus Delphi-Compiler für Win32 und Win64 gelinkt sind, unterstützen AVX2- und AVX-512-Anweisungen.

Achtung: Zum Testen dieses Features benötigen Sie eine mit AVX-512 kompatible CPU (etwa eine der neuen INTEL-CPUs). Weitere Informationen finden Sie unter:

https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512}} (Englisch)

Neue Register

Register dcc32 dcc64
XMM16 .. XMM31
Checkmark.svg
YMM0 .. YMM7
Checkmark.svg
Checkmark.svg
YMM8 .. YMM31
Checkmark.svg
ZMM0 .. ZMM7
Checkmark.svg
Checkmark.svg
ZMM8 .. ZMM31
Checkmark.svg
BND0 .. BND3
Checkmark.svg
Checkmark.svg
K0 .. K7
Checkmark.svg
Checkmark.svg


Neue Anweisungspräfixe

Anweisungspräfix dcc32 dcc64 Intel-Syntax
xacquire
Checkmark.svg
Checkmark.svg
xrelease
Checkmark.svg
Checkmark.svg
<evex>
Checkmark.svg
Checkmark.svg
{evex}


Neue Ausdruckspräfixe

Präfix dcc32 dcc64
oword
Checkmark.svg
Checkmark.svg
yword
Checkmark.svg
Checkmark.svg
zword
Checkmark.svg
Checkmark.svg


Unterschied zwischen Delphi-Syntax und Intel-Syntax

Leider verwendet die Intel AVX-512-Syntax geschweifte Klammern { }, die bereits in Delphi als Anfangs- und Endzeichen für Kommentare verwendet werden.

Daher werden in dieser Implementierung stattdessen Kleiner-als- und Größer-als-Zeichen (< >) verwendet.

Kategorie Delphi-Syntax Intel-Syntax
Opmask-Register <k1> ,, <k7> {k1} .. {k7}
Zeroing-Modifizierer <z> {z}
Eingebetteter Broadcast <1to2> <1to4> <1to8> <1to16> {1to2} {1to4} {1to8} {1to16}
Statischer Rundungsmodus <sae> <rn-sae> <rd-sae> <ru-sae> <rz-sae> {sae} {rn-sae} {rd-sae} {ru-sae} {rz-sae}
EVEX-Codierungspräfix durchsetzen <evex> {evex}


Siehe auch