x86-64 or x64,
an 64-bit x86-extension, designed by AMD as Hammer- or K8 architecture with Athlon 64 and Opteron cpus. It has been cloned by Intel under the name EMT64 and later Intel 64. Beside 64-bit general purpose extensions, x86-64 supports MMX-, x87- as well as the 128-bit SSE- and SSE2-instruction sets. According to the CPUID-instructions, further SIMD Streamig Extensions, such as SSE3, SSSE3 (Intel only), SSE4 (Core2, K10), AVX, AVX2 and AVX-512, and AMD's 3DNow!, Enhanced 3DNow! and XOP.
Useful instructions for bitboard-applications are by default not supported by high-level programming languages. Available through (inline) Assembly or compiler intrinsics of various C-Compilers [2].
an 64-bit x86-extension, designed by AMD as Hammer- or K8 architecture with Athlon 64 and Opteron cpus. It has been cloned by Intel under the name EMT64 and later Intel 64. Beside 64-bit general purpose extensions, x86-64 supports MMX-, x87- as well as the 128-bit SSE- and SSE2-instruction sets. According to the CPUID-instructions, further SIMD Streamig Extensions, such as SSE3, SSSE3 (Intel only), SSE4 (Core2, K10), AVX, AVX2 and AVX-512, and AMD's 3DNow!, Enhanced 3DNow! and XOP.
Table of Contents
Register File
x86-64 doubles the number of x86 general purpose- and XMM registers.General Purpose
The 16 general purpose registers may be treated as 64 bit Quad Word (bitboard), 32 bit Double Word, 16 bit Word and high, low Byte:MMX
Eight 64-bit MMX-Registers: MM0 - MM7.Treated as Double, Quad Word or vector of two Floats, Double Words, vector if four Words or eight Bytes.
SSE/SSE*
Sixteen 128-bit XMM-Registers: XMM0 - XMM15.Treated as vector of two Doubles or Quad Words, as vector of four Floats or Double Words, and as vector of eight Words or 16 Bytes.
AVX, AVX2/XOP
Intel Sandy Bridge and AMD BulldozerSixteen 256-bit YMM-Registers: YMM0 - YMM15 (shared by XMM as lower half).
Treated as vector of four Doubles or Quad Words, as vector of eight Floats or Double Words, and as vector of 15 Words or 32 Bytes.
AVX-512
Intel Xeon Phi (2015)32 512-bit ZMM-Registers: ZMM0 - ZMM31
Eight vector mask registers
Instructions
Useful instructions for bitboard-applications are by default not supported by high-level programming languages. Available through (inline) Assembly or compiler intrinsics of various C-Compilers [2].General Purpose
x86-64 C-Intrinsic reference from MSDN Library:_popcnt16, _popcnt, _popcnt64
Bit-Manipulation
SSE2
x86 and x86-64 - SSE2 C-integer intrinsic reference from MSDN Library, the intrinsic data type _m128i refers a xmm-register or memory location:of bytes into a word
gGhHfFeE:dDcCbBaA :=
xxxxxxxx:GHFEDCBA #
xxxxxxxx:ghfedcba
gGhHfFeE:dDcCbBaA :=
GHFEDCBA:xxxxxxxx #
ghfedcba:xxxxxxxx
dDcC:bBaA := xxxx:DCBA#xxxx:dcba
dDcC:bBaA := DCBA:xxxx#dcba:xxxx
bB:aA := xx:BA # xx:ba
bB:aA := BA:xx # ba:xx
a:A := x:A # x:a
a:A := A:x # a:x
xmm := *p
xmm := *p
*p := xmm
*p := xmm
xmm := gp64
gp32 := 16 sign-bits(xmm)
Software
Operating Systems
Development
Assembly
C-Compiler
See also
General Setwise Operations
BitScan
Publications
Manuals
Agner Fog
AMD
Instructions
Optimization Guides
Intel
Instructions
Optimization Guides
Forum Posts
External Links
AMD
Intel
Instruction Sets
AVX-512 from Wikipedia » AVX-512
Security Vulnerability
References
What links here?
Up one Level