Encoding VGATHER, VSCATTER, VPGATHER, and VPSCATTER | x86_64 Encoder

Adding floating-point and packed-integer gather and scatter instructions, together with VSIB addressing, vector index registers, high-16 EVEX indices, and no-base address encoding. Instructions covered: VGATHERDPS/DPD, VGATHERQPS/QPD, VPGATHERDD/DQ/QD/QQ, VPSCATTERDD/DQ/QD/QQ, VSCATTERDPS/DPD, and VSCATTERQPS/QPD. Part of a series building an x86-64 (x64) machine-code encoder from scratch in Go. Toolchain Playlist:    • Compiler Toolchain Development   x86_64 Encoder Playlist:    • x86_64 Encoder Development   00:00:00 VSIB Explanation 00:02:12 Instruction Test Cases 00:23:36 Adding a VSIB Attribute 00:26:19 Skipping GPR Index Optimizations 00:27:42 Instruction Forms 00:36:09 Encoding High-16 Index Registers 00:40:03 Fixing ModRM for No Base VSIB 00:42:57 Remaining Instruction Forms