summaryrefslogtreecommitdiff
path: root/test/MC/AsmParser
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-23 00:54:35 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-23 00:54:35 +0000
commit6b7e9168a451a7c07ceda1c92470b3b691e35c20 (patch)
tree018b398bc83484bf63b3ba455eba21e9b9158756 /test/MC/AsmParser
parentc76d23f2e2550c60aaa26ec23711aecebea7f533 (diff)
downloadllvm-6b7e9168a451a7c07ceda1c92470b3b691e35c20.tar.gz
llvm-6b7e9168a451a7c07ceda1c92470b3b691e35c20.tar.bz2
llvm-6b7e9168a451a7c07ceda1c92470b3b691e35c20.tar.xz
Add complete assembler support for FMA3 instructions, with descriptions and encodings taken from the AVX manual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109204 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AsmParser')
-rw-r--r--test/MC/AsmParser/X86/x86_32-fma3-encoding.s674
-rw-r--r--test/MC/AsmParser/X86/x86_64-fma3-encoding.s674
2 files changed, 1348 insertions, 0 deletions
diff --git a/test/MC/AsmParser/X86/x86_32-fma3-encoding.s b/test/MC/AsmParser/X86/x86_32-fma3-encoding.s
new file mode 100644
index 0000000000..db7efecfb5
--- /dev/null
+++ b/test/MC/AsmParser/X86/x86_32-fma3-encoding.s
@@ -0,0 +1,674 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vfmadd132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x98,0xca]
+ vfmadd132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x98,0x08]
+ vfmadd132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x98,0xca]
+ vfmadd132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x98,0x08]
+ vfmadd132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa8,0xca]
+ vfmadd213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa8,0x08]
+ vfmadd213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa8,0xca]
+ vfmadd213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa8,0x08]
+ vfmadd213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb8,0xca]
+ vfmadd231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb8,0x08]
+ vfmadd231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb8,0xca]
+ vfmadd231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb8,0x08]
+ vfmadd231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x98,0xca]
+ vfmadd132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x98,0x08]
+ vfmadd132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x98,0xca]
+ vfmadd132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x98,0x08]
+ vfmadd132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa8,0xca]
+ vfmadd213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa8,0x08]
+ vfmadd213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa8,0xca]
+ vfmadd213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa8,0x08]
+ vfmadd213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb8,0xca]
+ vfmadd231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb8,0x08]
+ vfmadd231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb8,0xca]
+ vfmadd231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb8,0x08]
+ vfmadd231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x98,0xca]
+ vfmadd132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x98,0x08]
+ vfmadd132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x98,0xca]
+ vfmadd132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x98,0x08]
+ vfmadd132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa8,0xca]
+ vfmadd213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa8,0x08]
+ vfmadd213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa8,0xca]
+ vfmadd213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa8,0x08]
+ vfmadd213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb8,0xca]
+ vfmadd231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb8,0x08]
+ vfmadd231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb8,0xca]
+ vfmadd231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmadd231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb8,0x08]
+ vfmadd231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x96,0xca]
+ vfmaddsub132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x96,0x08]
+ vfmaddsub132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x96,0xca]
+ vfmaddsub132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x96,0x08]
+ vfmaddsub132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa6,0xca]
+ vfmaddsub213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa6,0x08]
+ vfmaddsub213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa6,0xca]
+ vfmaddsub213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa6,0x08]
+ vfmaddsub213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb6,0xca]
+ vfmaddsub231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb6,0x08]
+ vfmaddsub231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmaddsub231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb6,0xca]
+ vfmaddsub231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmaddsub231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb6,0x08]
+ vfmaddsub231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x97,0xca]
+ vfmsubadd132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x97,0x08]
+ vfmsubadd132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x97,0xca]
+ vfmsubadd132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x97,0x08]
+ vfmsubadd132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa7,0xca]
+ vfmsubadd213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xa7,0x08]
+ vfmsubadd213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa7,0xca]
+ vfmsubadd213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xa7,0x08]
+ vfmsubadd213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb7,0xca]
+ vfmsubadd231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xb7,0x08]
+ vfmsubadd231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsubadd231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb7,0xca]
+ vfmsubadd231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsubadd231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xb7,0x08]
+ vfmsubadd231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9a,0xca]
+ vfmsub132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9a,0x08]
+ vfmsub132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9a,0xca]
+ vfmsub132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9a,0x08]
+ vfmsub132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xaa,0xca]
+ vfmsub213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xaa,0x08]
+ vfmsub213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xaa,0xca]
+ vfmsub213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xaa,0x08]
+ vfmsub213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xba,0xca]
+ vfmsub231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xba,0x08]
+ vfmsub231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfmsub231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xba,0xca]
+ vfmsub231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfmsub231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xba,0x08]
+ vfmsub231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9c,0xca]
+ vfnmadd132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9c,0x08]
+ vfnmadd132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9c,0xca]
+ vfnmadd132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9c,0x08]
+ vfnmadd132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xac,0xca]
+ vfnmadd213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xac,0x08]
+ vfnmadd213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xac,0xca]
+ vfnmadd213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xac,0x08]
+ vfnmadd213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xbc,0xca]
+ vfnmadd231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xbc,0x08]
+ vfnmadd231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmadd231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xbc,0xca]
+ vfnmadd231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmadd231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xbc,0x08]
+ vfnmadd231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub132pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9e,0xca]
+ vfnmsub132pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub132pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0x9e,0x08]
+ vfnmsub132pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub132ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9e,0xca]
+ vfnmsub132ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub132ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0x9e,0x08]
+ vfnmsub132ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub213pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xae,0xca]
+ vfnmsub213pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub213pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xae,0x08]
+ vfnmsub213pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub213ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xae,0xca]
+ vfnmsub213ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub213ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xae,0x08]
+ vfnmsub213ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub231pd %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xbe,0xca]
+ vfnmsub231pd %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub231pd (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0xd1,0xbe,0x08]
+ vfnmsub231pd (%eax), %xmm5, %xmm1
+
+// CHECK: vfnmsub231ps %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xbe,0xca]
+ vfnmsub231ps %xmm2, %xmm5, %xmm1
+
+// CHECK: vfnmsub231ps (%eax), %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe2,0x51,0xbe,0x08]
+ vfnmsub231ps (%eax), %xmm5, %xmm1
+
+// CHECK: vfmadd132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x98,0xca]
+ vfmadd132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x98,0x08]
+ vfmadd132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x98,0xca]
+ vfmadd132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x98,0x08]
+ vfmadd132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa8,0xca]
+ vfmadd213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa8,0x08]
+ vfmadd213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa8,0xca]
+ vfmadd213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa8,0x08]
+ vfmadd213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb8,0xca]
+ vfmadd231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb8,0x08]
+ vfmadd231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmadd231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb8,0xca]
+ vfmadd231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmadd231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb8,0x08]
+ vfmadd231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x96,0xca]
+ vfmaddsub132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x96,0x08]
+ vfmaddsub132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x96,0xca]
+ vfmaddsub132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x96,0x08]
+ vfmaddsub132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa6,0xca]
+ vfmaddsub213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa6,0x08]
+ vfmaddsub213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa6,0xca]
+ vfmaddsub213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa6,0x08]
+ vfmaddsub213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb6,0xca]
+ vfmaddsub231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb6,0x08]
+ vfmaddsub231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmaddsub231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb6,0xca]
+ vfmaddsub231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmaddsub231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb6,0x08]
+ vfmaddsub231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x97,0xca]
+ vfmsubadd132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x97,0x08]
+ vfmsubadd132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x97,0xca]
+ vfmsubadd132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x97,0x08]
+ vfmsubadd132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa7,0xca]
+ vfmsubadd213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xa7,0x08]
+ vfmsubadd213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa7,0xca]
+ vfmsubadd213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xa7,0x08]
+ vfmsubadd213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb7,0xca]
+ vfmsubadd231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xb7,0x08]
+ vfmsubadd231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsubadd231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb7,0xca]
+ vfmsubadd231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsubadd231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xb7,0x08]
+ vfmsubadd231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9a,0xca]
+ vfmsub132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9a,0x08]
+ vfmsub132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9a,0xca]
+ vfmsub132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9a,0x08]
+ vfmsub132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xaa,0xca]
+ vfmsub213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xaa,0x08]
+ vfmsub213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xaa,0xca]
+ vfmsub213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xaa,0x08]
+ vfmsub213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xba,0xca]
+ vfmsub231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xba,0x08]
+ vfmsub231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfmsub231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xba,0xca]
+ vfmsub231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfmsub231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xba,0x08]
+ vfmsub231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9c,0xca]
+ vfnmadd132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9c,0x08]
+ vfnmadd132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9c,0xca]
+ vfnmadd132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9c,0x08]
+ vfnmadd132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xac,0xca]
+ vfnmadd213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xac,0x08]
+ vfnmadd213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xac,0xca]
+ vfnmadd213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xac,0x08]
+ vfnmadd213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xbc,0xca]
+ vfnmadd231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xbc,0x08]
+ vfnmadd231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmadd231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xbc,0xca]
+ vfnmadd231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmadd231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xbc,0x08]
+ vfnmadd231ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub132pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9e,0xca]
+ vfnmsub132pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub132pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0x9e,0x08]
+ vfnmsub132pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub132ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9e,0xca]
+ vfnmsub132ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub132ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0x9e,0x08]
+ vfnmsub132ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub213pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xae,0xca]
+ vfnmsub213pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub213pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xae,0x08]
+ vfnmsub213pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub213ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xae,0xca]
+ vfnmsub213ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub213ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xae,0x08]
+ vfnmsub213ps (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub231pd %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xbe,0xca]
+ vfnmsub231pd %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub231pd (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0xd5,0xbe,0x08]
+ vfnmsub231pd (%eax), %ymm5, %ymm1
+
+// CHECK: vfnmsub231ps %ymm2, %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xbe,0xca]
+ vfnmsub231ps %ymm2, %ymm5, %ymm1
+
+// CHECK: vfnmsub231ps (%eax), %ymm5, %ymm1
+// CHECK: encoding: [0xc4,0xe2,0x55,0xbe,0x08]
+ vfnmsub231ps (%eax), %ymm5, %ymm1
+
diff --git a/test/MC/AsmParser/X86/x86_64-fma3-encoding.s b/test/MC/AsmParser/X86/x86_64-fma3-encoding.s
new file mode 100644
index 0000000000..d08a7329a0
--- /dev/null
+++ b/test/MC/AsmParser/X86/x86_64-fma3-encoding.s
@@ -0,0 +1,674 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vfmadd132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x98,0xdc]
+ vfmadd132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x98,0x18]
+ vfmadd132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x98,0xdc]
+ vfmadd132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x98,0x18]
+ vfmadd132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xa8,0xdc]
+ vfmadd213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xa8,0x18]
+ vfmadd213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xa8,0xdc]
+ vfmadd213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xa8,0x18]
+ vfmadd213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xb8,0xdc]
+ vfmadd231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xb8,0x18]
+ vfmadd231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xb8,0xdc]
+ vfmadd231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xb8,0x18]
+ vfmadd231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x98,0xdc]
+ vfmadd132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x98,0x18]
+ vfmadd132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x98,0xdc]
+ vfmadd132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x98,0x18]
+ vfmadd132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xa8,0xdc]
+ vfmadd213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xa8,0x18]
+ vfmadd213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xa8,0xdc]
+ vfmadd213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xa8,0x18]
+ vfmadd213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xb8,0xdc]
+ vfmadd231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xb8,0x18]
+ vfmadd231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xb8,0xdc]
+ vfmadd231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xb8,0x18]
+ vfmadd231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x98,0xdc]
+ vfmadd132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x98,0x18]
+ vfmadd132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x98,0xdc]
+ vfmadd132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x98,0x18]
+ vfmadd132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xa8,0xdc]
+ vfmadd213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xa8,0x18]
+ vfmadd213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xa8,0xdc]
+ vfmadd213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xa8,0x18]
+ vfmadd213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xb8,0xdc]
+ vfmadd231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xb8,0x18]
+ vfmadd231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xb8,0xdc]
+ vfmadd231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmadd231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xb8,0x18]
+ vfmadd231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x96,0xdc]
+ vfmaddsub132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x96,0x18]
+ vfmaddsub132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x96,0xdc]
+ vfmaddsub132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x96,0x18]
+ vfmaddsub132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xa6,0xdc]
+ vfmaddsub213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xa6,0x18]
+ vfmaddsub213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xa6,0xdc]
+ vfmaddsub213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xa6,0x18]
+ vfmaddsub213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xb6,0xdc]
+ vfmaddsub231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xb6,0x18]
+ vfmaddsub231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmaddsub231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xb6,0xdc]
+ vfmaddsub231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmaddsub231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xb6,0x18]
+ vfmaddsub231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x97,0xdc]
+ vfmsubadd132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x97,0x18]
+ vfmsubadd132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x97,0xdc]
+ vfmsubadd132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x97,0x18]
+ vfmsubadd132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xa7,0xdc]
+ vfmsubadd213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xa7,0x18]
+ vfmsubadd213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xa7,0xdc]
+ vfmsubadd213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xa7,0x18]
+ vfmsubadd213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xb7,0xdc]
+ vfmsubadd231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xb7,0x18]
+ vfmsubadd231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsubadd231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xb7,0xdc]
+ vfmsubadd231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsubadd231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xb7,0x18]
+ vfmsubadd231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x9a,0xdc]
+ vfmsub132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x9a,0x18]
+ vfmsub132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x9a,0xdc]
+ vfmsub132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x9a,0x18]
+ vfmsub132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xaa,0xdc]
+ vfmsub213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xaa,0x18]
+ vfmsub213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xaa,0xdc]
+ vfmsub213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xaa,0x18]
+ vfmsub213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xba,0xdc]
+ vfmsub231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xba,0x18]
+ vfmsub231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfmsub231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xba,0xdc]
+ vfmsub231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfmsub231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xba,0x18]
+ vfmsub231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x9c,0xdc]
+ vfnmadd132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x9c,0x18]
+ vfnmadd132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x9c,0xdc]
+ vfnmadd132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x9c,0x18]
+ vfnmadd132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xac,0xdc]
+ vfnmadd213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xac,0x18]
+ vfnmadd213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xac,0xdc]
+ vfnmadd213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xac,0x18]
+ vfnmadd213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xbc,0xdc]
+ vfnmadd231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xbc,0x18]
+ vfnmadd231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmadd231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xbc,0xdc]
+ vfnmadd231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmadd231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xbc,0x18]
+ vfnmadd231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub132pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0x9e,0xdc]
+ vfnmsub132pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub132pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0x9e,0x18]
+ vfnmsub132pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub132ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0x9e,0xdc]
+ vfnmsub132ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub132ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0x9e,0x18]
+ vfnmsub132ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub213pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xae,0xdc]
+ vfnmsub213pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub213pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xae,0x18]
+ vfnmsub213pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub213ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xae,0xdc]
+ vfnmsub213ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub213ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xae,0x18]
+ vfnmsub213ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub231pd %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0xa9,0xbe,0xdc]
+ vfnmsub231pd %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub231pd (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0xa9,0xbe,0x18]
+ vfnmsub231pd (%rax), %xmm10, %xmm11
+
+// CHECK: vfnmsub231ps %xmm12, %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x42,0x29,0xbe,0xdc]
+ vfnmsub231ps %xmm12, %xmm10, %xmm11
+
+// CHECK: vfnmsub231ps (%rax), %xmm10, %xmm11
+// CHECK: encoding: [0xc4,0x62,0x29,0xbe,0x18]
+ vfnmsub231ps (%rax), %xmm10, %xmm11
+
+// CHECK: vfmadd132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x98,0xdc]
+ vfmadd132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x98,0x18]
+ vfmadd132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x98,0xdc]
+ vfmadd132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x98,0x18]
+ vfmadd132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xa8,0xdc]
+ vfmadd213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xa8,0x18]
+ vfmadd213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xa8,0xdc]
+ vfmadd213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xa8,0x18]
+ vfmadd213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xb8,0xdc]
+ vfmadd231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xb8,0x18]
+ vfmadd231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmadd231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xb8,0xdc]
+ vfmadd231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmadd231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xb8,0x18]
+ vfmadd231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x96,0xdc]
+ vfmaddsub132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x96,0x18]
+ vfmaddsub132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x96,0xdc]
+ vfmaddsub132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x96,0x18]
+ vfmaddsub132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xa6,0xdc]
+ vfmaddsub213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xa6,0x18]
+ vfmaddsub213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xa6,0xdc]
+ vfmaddsub213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xa6,0x18]
+ vfmaddsub213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xb6,0xdc]
+ vfmaddsub231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xb6,0x18]
+ vfmaddsub231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmaddsub231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xb6,0xdc]
+ vfmaddsub231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmaddsub231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xb6,0x18]
+ vfmaddsub231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x97,0xdc]
+ vfmsubadd132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x97,0x18]
+ vfmsubadd132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x97,0xdc]
+ vfmsubadd132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x97,0x18]
+ vfmsubadd132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xa7,0xdc]
+ vfmsubadd213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xa7,0x18]
+ vfmsubadd213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xa7,0xdc]
+ vfmsubadd213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xa7,0x18]
+ vfmsubadd213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xb7,0xdc]
+ vfmsubadd231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xb7,0x18]
+ vfmsubadd231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsubadd231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xb7,0xdc]
+ vfmsubadd231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsubadd231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xb7,0x18]
+ vfmsubadd231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x9a,0xdc]
+ vfmsub132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x9a,0x18]
+ vfmsub132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x9a,0xdc]
+ vfmsub132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x9a,0x18]
+ vfmsub132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xaa,0xdc]
+ vfmsub213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xaa,0x18]
+ vfmsub213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xaa,0xdc]
+ vfmsub213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xaa,0x18]
+ vfmsub213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xba,0xdc]
+ vfmsub231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xba,0x18]
+ vfmsub231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfmsub231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xba,0xdc]
+ vfmsub231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfmsub231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xba,0x18]
+ vfmsub231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x9c,0xdc]
+ vfnmadd132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x9c,0x18]
+ vfnmadd132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x9c,0xdc]
+ vfnmadd132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x9c,0x18]
+ vfnmadd132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xac,0xdc]
+ vfnmadd213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xac,0x18]
+ vfnmadd213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xac,0xdc]
+ vfnmadd213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xac,0x18]
+ vfnmadd213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xbc,0xdc]
+ vfnmadd231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xbc,0x18]
+ vfnmadd231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmadd231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xbc,0xdc]
+ vfnmadd231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmadd231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xbc,0x18]
+ vfnmadd231ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub132pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0x9e,0xdc]
+ vfnmsub132pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub132pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0x9e,0x18]
+ vfnmsub132pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub132ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0x9e,0xdc]
+ vfnmsub132ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub132ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0x9e,0x18]
+ vfnmsub132ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub213pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xae,0xdc]
+ vfnmsub213pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub213pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xae,0x18]
+ vfnmsub213pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub213ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xae,0xdc]
+ vfnmsub213ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub213ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xae,0x18]
+ vfnmsub213ps (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub231pd %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0xad,0xbe,0xdc]
+ vfnmsub231pd %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub231pd (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0xad,0xbe,0x18]
+ vfnmsub231pd (%rax), %ymm10, %ymm11
+
+// CHECK: vfnmsub231ps %ymm12, %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x42,0x2d,0xbe,0xdc]
+ vfnmsub231ps %ymm12, %ymm10, %ymm11
+
+// CHECK: vfnmsub231ps (%rax), %ymm10, %ymm11
+// CHECK: encoding: [0xc4,0x62,0x2d,0xbe,0x18]
+ vfnmsub231ps (%rax), %ymm10, %ymm11
+