[llvm-commits] [llvm] r109204 - in /llvm/trunk: lib/Target/X86/X86InstrFMA.td lib/Target/X86/X86InstrFormats.td lib/Target/X86/X86InstrInfo.td test/MC/AsmParser/X86/x86_32-fma3-encoding.s test/MC/AsmParser/X86/x86_64-fma3-encoding.s

Bruno Cardoso Lopes bruno.cardoso at gmail.com
Thu Jul 22 17:54:35 PDT 2010


Author: bruno
Date: Thu Jul 22 19:54:35 2010
New Revision: 109204

URL: http://llvm.org/viewvc/llvm-project?rev=109204&view=rev
Log:
Add complete assembler support for FMA3 instructions, with descriptions and encodings taken from the AVX manual

Added:
    llvm/trunk/lib/Target/X86/X86InstrFMA.td
    llvm/trunk/test/MC/AsmParser/X86/x86_32-fma3-encoding.s
    llvm/trunk/test/MC/AsmParser/X86/x86_64-fma3-encoding.s
Modified:
    llvm/trunk/lib/Target/X86/X86InstrFormats.td
    llvm/trunk/lib/Target/X86/X86InstrInfo.td

Added: llvm/trunk/lib/Target/X86/X86InstrFMA.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrFMA.td?rev=109204&view=auto
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrFMA.td (added)
+++ llvm/trunk/lib/Target/X86/X86InstrFMA.td Thu Jul 22 19:54:35 2010
@@ -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;
+}

Modified: llvm/trunk/lib/Target/X86/X86InstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrFormats.td?rev=109204&r1=109203&r2=109204&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrFormats.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrFormats.td Thu Jul 22 19:54:35 2010
@@ -439,6 +439,12 @@
       : 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...
 //
 

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=109204&r1=109203&r2=109204&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Thu Jul 22 19:54:35 2010
@@ -4968,6 +4968,12 @@
 include "X86InstrFragmentsSIMD.td"
 
 //===----------------------------------------------------------------------===//
+// FMA - Fused Multiply-Add support (requires FMA)
+//===----------------------------------------------------------------------===//
+
+include "X86InstrFMA.td"
+
+//===----------------------------------------------------------------------===//
 // XMM Floating point support (requires SSE / SSE2)
 //===----------------------------------------------------------------------===//
 

Added: llvm/trunk/test/MC/AsmParser/X86/x86_32-fma3-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_32-fma3-encoding.s?rev=109204&view=auto
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_32-fma3-encoding.s (added)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_32-fma3-encoding.s Thu Jul 22 19:54:35 2010
@@ -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
+

Added: llvm/trunk/test/MC/AsmParser/X86/x86_64-fma3-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_64-fma3-encoding.s?rev=109204&view=auto
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_64-fma3-encoding.s (added)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_64-fma3-encoding.s Thu Jul 22 19:54:35 2010
@@ -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
+





More information about the llvm-commits mailing list