[llvm-commits] [llvm] r157914 - /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Craig Topper craig.topper at gmail.com
Mon Jun 4 00:08:21 PDT 2012


Author: ctopper
Date: Mon Jun  4 02:08:21 2012
New Revision: 157914

URL: http://llvm.org/viewvc/llvm-project?rev=157914&view=rev
Log:
Add VFMADDSUB and VFMSUBADD FMA instructions to folding tables. Also add 213 forms of scalar FMA instructions.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=157914&r1=157913&r2=157914&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Mon Jun  4 02:08:21 2012
@@ -1131,6 +1131,8 @@
     { X86::VFMADDSDr231r,     X86::VFMADDSDr231m,      0 },
     { X86::VFMADDSSr132r,     X86::VFMADDSSr132m,      0 },
     { X86::VFMADDSDr132r,     X86::VFMADDSDr132m,      0 },
+    { X86::VFMADDSSr213r,     X86::VFMADDSSr213m,      0 },
+    { X86::VFMADDSDr213r,     X86::VFMADDSDr213m,      0 },
 
     { X86::VFMADDPSr231r,     X86::VFMADDPSr231m,      TB_ALIGN_16 },
     { X86::VFMADDPDr231r,     X86::VFMADDPDr231m,      TB_ALIGN_16 },
@@ -1149,6 +1151,8 @@
     { X86::VFNMADDSDr231r,    X86::VFNMADDSDr231m,     0 },
     { X86::VFNMADDSSr132r,    X86::VFNMADDSSr132m,     0 },
     { X86::VFNMADDSDr132r,    X86::VFNMADDSDr132m,     0 },
+    { X86::VFNMADDSSr213r,    X86::VFNMADDSSr213m,     0 },
+    { X86::VFNMADDSDr213r,    X86::VFNMADDSDr213m,     0 },
 
     { X86::VFNMADDPSr231r,    X86::VFNMADDPSr231m,     TB_ALIGN_16 },
     { X86::VFNMADDPDr231r,    X86::VFNMADDPDr231m,     TB_ALIGN_16 },
@@ -1167,6 +1171,8 @@
     { X86::VFMSUBSDr231r,     X86::VFMSUBSDr231m,      0 },
     { X86::VFMSUBSSr132r,     X86::VFMSUBSSr132m,      0 },
     { X86::VFMSUBSDr132r,     X86::VFMSUBSDr132m,      0 },
+    { X86::VFMSUBSSr213r,     X86::VFMSUBSSr213m,      0 },
+    { X86::VFMSUBSDr213r,     X86::VFMSUBSDr213m,      0 },
 
     { X86::VFMSUBPSr231r,     X86::VFMSUBPSr231m,      TB_ALIGN_16 },
     { X86::VFMSUBPDr231r,     X86::VFMSUBPDr231m,      TB_ALIGN_16 },
@@ -1185,6 +1191,8 @@
     { X86::VFNMSUBSDr231r,    X86::VFNMSUBSDr231m,     0 },
     { X86::VFNMSUBSSr132r,    X86::VFNMSUBSSr132m,     0 },
     { X86::VFNMSUBSDr132r,    X86::VFNMSUBSDr132m,     0 },
+    { X86::VFNMSUBSSr213r,    X86::VFNMSUBSSr213m,     0 },
+    { X86::VFNMSUBSDr213r,    X86::VFNMSUBSDr213m,     0 },
 
     { X86::VFNMSUBPSr231r,    X86::VFNMSUBPSr231m,     TB_ALIGN_16 },
     { X86::VFNMSUBPDr231r,    X86::VFNMSUBPDr231m,     TB_ALIGN_16 },
@@ -1198,6 +1206,32 @@
     { X86::VFNMSUBPDr132rY,   X86::VFNMSUBPDr132mY,    TB_ALIGN_32 },
     { X86::VFNMSUBPSr213rY,   X86::VFNMSUBPSr213mY,    TB_ALIGN_32 },
     { X86::VFNMSUBPDr213rY,   X86::VFNMSUBPDr213mY,    TB_ALIGN_32 },
+
+    { X86::VFMADDSUBPSr231r,  X86::VFMADDSUBPSr231m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPDr231r,  X86::VFMADDSUBPDr231m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPSr132r,  X86::VFMADDSUBPSr132m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPDr132r,  X86::VFMADDSUBPDr132m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPSr213r,  X86::VFMADDSUBPSr213m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPDr213r,  X86::VFMADDSUBPDr213m,   TB_ALIGN_16 },
+    { X86::VFMADDSUBPSr231rY, X86::VFMADDSUBPSr231mY,  TB_ALIGN_32 },
+    { X86::VFMADDSUBPDr231rY, X86::VFMADDSUBPDr231mY,  TB_ALIGN_32 },
+    { X86::VFMADDSUBPSr132rY, X86::VFMADDSUBPSr132mY,  TB_ALIGN_32 },
+    { X86::VFMADDSUBPDr132rY, X86::VFMADDSUBPDr132mY,  TB_ALIGN_32 },
+    { X86::VFMADDSUBPSr213rY, X86::VFMADDSUBPSr213mY,  TB_ALIGN_32 },
+    { X86::VFMADDSUBPDr213rY, X86::VFMADDSUBPDr213mY,  TB_ALIGN_32 },
+
+    { X86::VFMSUBADDPSr231r,  X86::VFMSUBADDPSr231m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPDr231r,  X86::VFMSUBADDPDr231m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPSr132r,  X86::VFMSUBADDPSr132m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPDr132r,  X86::VFMSUBADDPDr132m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPSr213r,  X86::VFMSUBADDPSr213m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPDr213r,  X86::VFMSUBADDPDr213m,   TB_ALIGN_16 },
+    { X86::VFMSUBADDPSr231rY, X86::VFMSUBADDPSr231mY,  TB_ALIGN_32 },
+    { X86::VFMSUBADDPDr231rY, X86::VFMSUBADDPDr231mY,  TB_ALIGN_32 },
+    { X86::VFMSUBADDPSr132rY, X86::VFMSUBADDPSr132mY,  TB_ALIGN_32 },
+    { X86::VFMSUBADDPDr132rY, X86::VFMSUBADDPDr132mY,  TB_ALIGN_32 },
+    { X86::VFMSUBADDPSr213rY, X86::VFMSUBADDPSr213mY,  TB_ALIGN_32 },
+    { X86::VFMSUBADDPDr213rY, X86::VFMSUBADDPDr213mY,  TB_ALIGN_32 },
   };
 
   for (unsigned i = 0, e = array_lengthof(OpTbl3); i != e; ++i) {





More information about the llvm-commits mailing list