The following instruction produced by objdump cannot be assembled by GAS due to an error: Bytes: 62 c1 95 00 f4 41 42 Instruction: vpmuludq 0x420(%r9), %xmm29, %xmm16 ERROR: invalid register operand for `vpmuludq' This might be a limitation on the part of gas. Checking other decoders like XED and LLVM, the instruction appears to be valid.
[hjl@gnu-6 mbind]$ cat x.s vpmuludq 0x420(%r9),%xmm29,%xmm16 [hjl@gnu-6 mbind]$ gcc -c x.s [hjl@gnu-6 mbind]$ objdump -dwr x.o x.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <.text>: 0: 62 c1 95 00 f4 41 42 vpmuludq 0x420(%r9),%xmm29,%xmm16 [hjl@gnu-6 mbind]$
Works with binutils 2.28.