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
This commit is contained in:
Bruno Cardoso Lopes 2010-07-23 00:54:35 +00:00
parent c76d23f2e2
commit 6b7e9168a4
5 changed files with 1420 additions and 0 deletions

View File

@ -0,0 +1,60 @@
//====- X86InstrFMA.td - Describe the X86 Instruction Set --*- tablegen -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file describes FMA (Fused Multiply-Add) instructions.
//
//===----------------------------------------------------------------------===//
//===----------------------------------------------------------------------===//
// FMA3 - Intel 3 operand Fused Multiply-Add instructions
//===----------------------------------------------------------------------===//
multiclass fma_rm<bits<8> opc, string OpcodeStr> {
def r : FMA3<opc, MRMSrcReg, (outs VR128:$dst),
(ins VR128:$src1, VR128:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[]>;
def m : FMA3<opc, MRMSrcMem, (outs VR128:$dst),
(ins VR128:$src1, f128mem:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[]>;
def rY : FMA3<opc, MRMSrcReg, (outs VR256:$dst),
(ins VR256:$src1, VR256:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[]>;
def mY : FMA3<opc, MRMSrcMem, (outs VR256:$dst),
(ins VR256:$src1, f256mem:$src2),
!strconcat(OpcodeStr, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[]>;
}
multiclass fma_forms<bits<8> opc132, bits<8> opc213, bits<8> opc231,
string OpcodeStr, string PackTy> {
defm r132 : fma_rm<opc132, !strconcat(OpcodeStr, !strconcat("132", PackTy))>;
defm r213 : fma_rm<opc213, !strconcat(OpcodeStr, !strconcat("213", PackTy))>;
defm r231 : fma_rm<opc231, !strconcat(OpcodeStr, !strconcat("231", PackTy))>;
}
let isAsmParserOnly = 1 in {
// Fused Multiply-Add
defm VFMADDPS : fma_forms<0x98, 0xA8, 0xB8, "vfmadd", "ps">;
defm VFMADDPD : fma_forms<0x98, 0xA8, 0xB8, "vfmadd", "pd">, VEX_W;
defm VFMADDSUBPS : fma_forms<0x96, 0xA6, 0xB6, "vfmaddsub", "ps">;
defm VFMADDSUBPD : fma_forms<0x96, 0xA6, 0xB6, "vfmaddsub", "pd">, VEX_W;
defm VFMSUBADDPS : fma_forms<0x97, 0xA7, 0xB7, "vfmsubadd", "ps">;
defm VFMSUBADDPD : fma_forms<0x97, 0xA7, 0xB7, "vfmsubadd", "pd">, VEX_W;
defm VFMSUBPS : fma_forms<0x9A, 0xAA, 0xBA, "vfmsub", "ps">;
defm VFMSUBPD : fma_forms<0x9A, 0xAA, 0xBA, "vfmsub", "pd">, VEX_W;
// Fused Negative Multiply-Add
defm VFNMADDPS : fma_forms<0x9C, 0xAC, 0xBC, "vfnmadd", "ps">;
defm VFNMADDPD : fma_forms<0x9C, 0xAC, 0xBC, "vfnmadd", "pd">, VEX_W;
defm VFNMSUBPS : fma_forms<0x9E, 0xAE, 0xBE, "vfnmsub", "ps">;
defm VFNMSUBPD : fma_forms<0x9E, 0xAE, 0xBE, "vfnmsub", "pd">, VEX_W;
}

View File

@ -439,6 +439,12 @@ class AESAI<bits<8> o, Format F, dag outs, dag ins, string asm,
: Ii8<o, F, outs, ins, asm, pattern, SSEPackedInt>, TA,
Requires<[HasAES]>;
// FMA3 Instruction Templates
class FMA3<bits<8> o, Format F, dag outs, dag ins, string asm,
list<dag>pattern>
: I<o, F, outs, ins, asm, pattern, SSEPackedInt>, T8,
OpSize, VEX_4V, Requires<[HasFMA3]>;
// X86-64 Instruction templates...
//

View File

@ -4967,6 +4967,12 @@ include "X86Instr64bit.td"
include "X86InstrFragmentsSIMD.td"
//===----------------------------------------------------------------------===//
// FMA - Fused Multiply-Add support (requires FMA)
//===----------------------------------------------------------------------===//
include "X86InstrFMA.td"
//===----------------------------------------------------------------------===//
// XMM Floating point support (requires SSE / SSE2)
//===----------------------------------------------------------------------===//

View File

@ -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

View File

@ -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