Built-In Assembler support for AVX2 and AVX-512

提供: RAD Studio
移動先: 案内検索

[Delphi コンパイラ] への移動


Built-In Assembler modules (CHASM and CHASM64) linked in the Olympus Delphi compiler for Win32 and Win64 support AVX2 and AVX-512 instructions.

注意: You’d need an AVX-512 compatible CPU (like one of the recent INTEL CPUs) to test this feature. You can find more information at:

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

New Registers

Registers 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


New Instruction Prefixes

Instruction Prefix dcc32 dcc64 Intel Syntax
xacquire
Checkmark.svg
Checkmark.svg
xrelease
Checkmark.svg
Checkmark.svg
<evex>
Checkmark.svg
Checkmark.svg
{evex}


New Expression Prefixes

Prefix dcc32 dcc64
oword
Checkmark.svg
Checkmark.svg
yword
Checkmark.svg
Checkmark.svg
zword
Checkmark.svg
Checkmark.svg


Difference between Delphi Syntax and Intel Syntax

Unfortunately, Intel AVX-512 syntax uses curly brackets characters { } which is already used as comment begin/end in Delphi.

So, this implementation uses less-than and greater-than characters < > instead.

Category Delphi Syntax Intel Syntax
Opmask register <k1> ,, <k7> {k1} .. {k7}
Zeroing modifier <z> {z}
Embedded broadcast <1to2> <1to4> <1to8> <1to16> {1to2} {1to4} {1to8} {1to16}
Static rounding-mode <sae> <rn-sae> <rd-sae> <ru-sae> <rz-sae> {sae} {rn-sae} {rd-sae} {ru-sae} {rz-sae}
Force EVEX encoding prefix <evex> {evex}


See Also