I would expect an AVX2 VSIB-using instruction like VGATHERDPD to be flagged by objdump as invalid if its ModR/M is of a form that doesn't have a (V)SIB, but objdump instead disassembles it without complaint: > cat vsib-test.s .text # this should disassemble as "vgatherdpd %xmm2,(%rax,%xmm7,2),%xmm1" .byte 0xc4,0xe2,0xe9,0x92,0x0c,0x78 # this should be flagged as invalid .byte 0xc4,0xe2,0xe9,0x92,0x08 > gas/as-new -o vsib-test.o ../vsib-test.s > binutils/objdump -d vsib-test.o vsib-test.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <.text>: 0: c4 e2 e9 92 0c 78 vgatherdpd %xmm2,(%rax,%xmm7,2),%xmm1 6: c4 e2 e9 92 08 vgatherdpd %xmm2,(%rax),%xmm1 That last instruction is invalid and will be rejected by gas if you try to assemble it.
Current output for the bad insn is 6: c4 e2 e9 92 08 vgatherdpd %xmm2,(bad),%xmm1