[llvm] r320277 - [X86] Add the commutable floating point min/max pseudo instructions to sandybridge, haswell, broadwell, skylakeclient scheduler models.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sat Dec 9 17:24:05 PST 2017
Author: ctopper
Date: Sat Dec 9 17:24:05 2017
New Revision: 320277
URL: http://llvm.org/viewvc/llvm-project?rev=320277&view=rev
Log:
[X86] Add the commutable floating point min/max pseudo instructions to sandybridge,haswell,broadwell,skylakeclient scheduler models.
Modified:
llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
llvm/trunk/lib/Target/X86/X86SchedHaswell.td
llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
Modified: llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedBroadwell.td?rev=320277&r1=320276&r2=320277&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Sat Dec 9 17:24:05 2017
@@ -1302,14 +1302,14 @@ def: InstRW<[BWWriteResGroup27], (instre
def: InstRW<[BWWriteResGroup27], (instregex "IMUL(32|64)rr(i8?)")>;
def: InstRW<[BWWriteResGroup27], (instregex "IMUL8r")>;
def: InstRW<[BWWriteResGroup27], (instregex "LZCNT(16|32|64)rr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MAXPDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MAXPSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MAXSDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MAXSSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MINPDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MINPSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MINSDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "MINSSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MAX(C?)PDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MAX(C?)PSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MAX(C?)SDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MAX(C?)SSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MIN(C?)PDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MIN(C?)PSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MIN(C?)SDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "MIN(C?)SSrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "MMX_CVTPI2PSirr")>;
def: InstRW<[BWWriteResGroup27], (instregex "MUL8r")>;
def: InstRW<[BWWriteResGroup27], (instregex "PDEP32rr")>;
@@ -1356,18 +1356,18 @@ def: InstRW<[BWWriteResGroup27], (instre
def: InstRW<[BWWriteResGroup27], (instregex "VCVTPS2DQrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "VCVTTPS2DQYrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "VCVTTPS2DQrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXPDYrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXPDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXPSYrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXPSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXSDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMAXSSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINPDYrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINPDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINPSYrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINPSrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINSDrr")>;
-def: InstRW<[BWWriteResGroup27], (instregex "VMINSSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)PDYrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)PDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)PSYrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)PSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)SDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMAX(C?)SSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)PDYrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)PDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)PSYrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)PSrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)SDrr")>;
+def: InstRW<[BWWriteResGroup27], (instregex "VMIN(C?)SSrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "VSUBPDYrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "VSUBPDrr")>;
def: InstRW<[BWWriteResGroup27], (instregex "VSUBPSYrr")>;
@@ -2782,14 +2782,14 @@ def: InstRW<[BWWriteResGroup91], (instre
def: InstRW<[BWWriteResGroup91], (instregex "IMUL(32|64)rm(i8?)")>;
def: InstRW<[BWWriteResGroup91], (instregex "IMUL8m")>;
def: InstRW<[BWWriteResGroup91], (instregex "LZCNT(16|32|64)rm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MAXPDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MAXPSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MAXSDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MAXSSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MINPDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MINPSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MINSDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "MINSSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MAX(C?)PDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MAX(C?)PSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MAX(C?)SDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MAX(C?)SSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MIN(C?)PDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MIN(C?)PSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MIN(C?)SDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "MIN(C?)SSrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "MMX_CVTPI2PSirm")>;
def: InstRW<[BWWriteResGroup91], (instregex "MMX_CVTPS2PIirm")>;
def: InstRW<[BWWriteResGroup91], (instregex "MMX_CVTTPS2PIirm")>;
@@ -2822,14 +2822,14 @@ def: InstRW<[BWWriteResGroup91], (instre
def: InstRW<[BWWriteResGroup91], (instregex "VCVTDQ2PSrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "VCVTPS2DQrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "VCVTTPS2DQrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMAXPDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMAXPSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMAXSDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMAXSSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMINPDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMINPSrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMINSDrm")>;
-def: InstRW<[BWWriteResGroup91], (instregex "VMINSSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMAX(C?)PDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMAX(C?)PSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMAX(C?)SDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMAX(C?)SSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMIN(C?)PDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMIN(C?)PSrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMIN(C?)SDrm")>;
+def: InstRW<[BWWriteResGroup91], (instregex "VMIN(C?)SSrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "VSUBPDrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "VSUBPSrm")>;
def: InstRW<[BWWriteResGroup91], (instregex "VSUBSDrm")>;
@@ -3014,10 +3014,10 @@ def: InstRW<[BWWriteResGroup101], (instr
def: InstRW<[BWWriteResGroup101], (instregex "VCVTDQ2PSYrm")>;
def: InstRW<[BWWriteResGroup101], (instregex "VCVTPS2DQYrm")>;
def: InstRW<[BWWriteResGroup101], (instregex "VCVTTPS2DQYrm")>;
-def: InstRW<[BWWriteResGroup101], (instregex "VMAXPDYrm")>;
-def: InstRW<[BWWriteResGroup101], (instregex "VMAXPSYrm")>;
-def: InstRW<[BWWriteResGroup101], (instregex "VMINPDYrm")>;
-def: InstRW<[BWWriteResGroup101], (instregex "VMINPSYrm")>;
+def: InstRW<[BWWriteResGroup101], (instregex "VMAX(C?)PDYrm")>;
+def: InstRW<[BWWriteResGroup101], (instregex "VMAX(C?)PSYrm")>;
+def: InstRW<[BWWriteResGroup101], (instregex "VMIN(C?)PDYrm")>;
+def: InstRW<[BWWriteResGroup101], (instregex "VMIN(C?)PSYrm")>;
def: InstRW<[BWWriteResGroup101], (instregex "VSUBPDYrm")>;
def: InstRW<[BWWriteResGroup101], (instregex "VSUBPSYrm")>;
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=320277&r1=320276&r2=320277&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Sat Dec 9 17:24:05 2017
@@ -1597,10 +1597,10 @@ def: InstRW<[HWWriteResGroup12], (instre
def: InstRW<[HWWriteResGroup12], (instregex "IMUL(16|32|64)rm(i8?)")>;
def: InstRW<[HWWriteResGroup12], (instregex "IMUL8m")>;
def: InstRW<[HWWriteResGroup12], (instregex "LZCNT(16|32|64)rm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "MAXSDrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "MAXSSrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "MINSDrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "MINSSrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "MAX(C?)SDrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "MAX(C?)SSrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "MIN(C?)SDrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "MIN(C?)SSrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "MMX_CVTPI2PSirm")>;
def: InstRW<[HWWriteResGroup12], (instregex "MMX_CVTPS2PIirm")>;
def: InstRW<[HWWriteResGroup12], (instregex "MMX_CVTTPS2PIirm")>;
@@ -1622,10 +1622,10 @@ def: InstRW<[HWWriteResGroup12], (instre
def: InstRW<[HWWriteResGroup12], (instregex "VCMPSSrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "VCOMISDrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "VCOMISSrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "VMAXSDrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "VMAXSSrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "VMINSDrm")>;
-def: InstRW<[HWWriteResGroup12], (instregex "VMINSSrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "VMAX(C?)SDrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "VMAX(C?)SSrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "VMIN(C?)SDrm")>;
+def: InstRW<[HWWriteResGroup12], (instregex "VMIN(C?)SSrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "VSUBSDrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "VSUBSSrm")>;
def: InstRW<[HWWriteResGroup12], (instregex "VUCOMISDrm")>;
@@ -2600,14 +2600,14 @@ def: InstRW<[HWWriteResGroup50], (instre
def: InstRW<[HWWriteResGroup50], (instregex "IMUL64rr(i8?)")>;
def: InstRW<[HWWriteResGroup50], (instregex "IMUL8r")>;
def: InstRW<[HWWriteResGroup50], (instregex "LZCNT(16|32|64)rr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MAXPDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MAXPSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MAXSDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MAXSSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MINPDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MINPSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MINSDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "MINSSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MAX(C?)PDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MAX(C?)PSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MAX(C?)SDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MAX(C?)SSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MIN(C?)PDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MIN(C?)PSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MIN(C?)SDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "MIN(C?)SSrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "MMX_CVTPI2PSirr")>;
def: InstRW<[HWWriteResGroup50], (instregex "MUL8r")>;
def: InstRW<[HWWriteResGroup50], (instregex "PDEP32rr")>;
@@ -2654,18 +2654,18 @@ def: InstRW<[HWWriteResGroup50], (instre
def: InstRW<[HWWriteResGroup50], (instregex "VCVTPS2DQrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "VCVTTPS2DQYrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "VCVTTPS2DQrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXPDYrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXPDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXPSYrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXPSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXSDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMAXSSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINPDYrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINPDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINPSYrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINPSrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINSDrr")>;
-def: InstRW<[HWWriteResGroup50], (instregex "VMINSSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)PDYrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)PDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)PSYrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)PSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)SDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMAX(C?)SSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)PDYrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)PDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)PSYrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)PSrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)SDrr")>;
+def: InstRW<[HWWriteResGroup50], (instregex "VMIN(C?)SSrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "VSUBPDYrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "VSUBPDrr")>;
def: InstRW<[HWWriteResGroup50], (instregex "VSUBPSYrr")>;
@@ -2737,10 +2737,10 @@ def: InstRW<[HWWriteResGroup52], (instre
def: InstRW<[HWWriteResGroup52], (instregex "CVTDQ2PSrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "CVTPS2DQrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "CVTTPS2DQrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "MAXPDrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "MAXPSrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "MINPDrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "MINPSrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MAX(C?)PDrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MAX(C?)PSrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MIN(C?)PDrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MIN(C?)PSrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "SUBPDrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "SUBPSrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "VADDPDrm")>;
@@ -2752,10 +2752,10 @@ def: InstRW<[HWWriteResGroup52], (instre
def: InstRW<[HWWriteResGroup52], (instregex "VCVTDQ2PSrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "VCVTPS2DQrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "VCVTTPS2DQrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "VMAXPDrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "VMAXPSrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "VMINPDrm")>;
-def: InstRW<[HWWriteResGroup52], (instregex "VMINPSrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "VMAX(C?)PDrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "VMAX(C?)PSrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "VMIN(C?)PDrm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "VMIN(C?)PSrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "VSUBPDrm")>;
def: InstRW<[HWWriteResGroup52], (instregex "VSUBPSrm")>;
@@ -2782,10 +2782,10 @@ def: InstRW<[HWWriteResGroup52_1], (inst
def: InstRW<[HWWriteResGroup52_1], (instregex "VCVTDQ2PSYrm")>;
def: InstRW<[HWWriteResGroup52_1], (instregex "VCVTPS2DQYrm")>;
def: InstRW<[HWWriteResGroup52_1], (instregex "VCVTTPS2DQYrm")>;
-def: InstRW<[HWWriteResGroup52_1], (instregex "VMAXPDYrm")>;
-def: InstRW<[HWWriteResGroup52_1], (instregex "VMAXPSYrm")>;
-def: InstRW<[HWWriteResGroup52_1], (instregex "VMINPDYrm")>;
-def: InstRW<[HWWriteResGroup52_1], (instregex "VMINPSYrm")>;
+def: InstRW<[HWWriteResGroup52_1], (instregex "VMAX(C?)PDYrm")>;
+def: InstRW<[HWWriteResGroup52_1], (instregex "VMAX(C?)PSYrm")>;
+def: InstRW<[HWWriteResGroup52_1], (instregex "VMIN(C?)PDYrm")>;
+def: InstRW<[HWWriteResGroup52_1], (instregex "VMIN(C?)PSYrm")>;
def: InstRW<[HWWriteResGroup52_1], (instregex "VSUBPDYrm")>;
def: InstRW<[HWWriteResGroup52_1], (instregex "VSUBPSYrm")>;
Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=320277&r1=320276&r2=320277&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Sat Dec 9 17:24:05 2017
@@ -981,14 +981,14 @@ def: InstRW<[SBWriteResGroup21], (instre
def: InstRW<[SBWriteResGroup21], (instregex "CVTDQ2PSrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "CVTPS2DQrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "CVTTPS2DQrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MAXPDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MAXPSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MAXSDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MAXSSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MINPDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MINPSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MINSDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "MINSSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MAX(C?)PDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MAX(C?)PSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MAX(C?)SDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MAX(C?)SSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MIN(C?)PDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MIN(C?)PSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MIN(C?)SDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "MIN(C?)SSrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "MMX_CVTPI2PSirr")>;
def: InstRW<[SBWriteResGroup21], (instregex "MMX_CVTPS2PIirr")>;
def: InstRW<[SBWriteResGroup21], (instregex "MMX_CVTTPS2PIirr")>;
@@ -1031,18 +1031,18 @@ def: InstRW<[SBWriteResGroup21], (instre
def: InstRW<[SBWriteResGroup21], (instregex "VCVTPS2DQrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "VCVTTPS2DQYrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "VCVTTPS2DQrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXPDYrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXPDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXPSYrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXPSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXSDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMAXSSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINPDYrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINPDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINPSYrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINPSrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINSDrr")>;
-def: InstRW<[SBWriteResGroup21], (instregex "VMINSSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)PDYrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)PDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)PSYrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)PSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)SDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMAX(C?)SSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)PDYrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)PDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)PSYrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)PSrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)SDrr")>;
+def: InstRW<[SBWriteResGroup21], (instregex "VMIN(C?)SSrr")>;
def: InstRW<[SBWriteResGroup21], (instregex "VROUNDPDr")>;
def: InstRW<[SBWriteResGroup21], (instregex "VROUNDPSr")>;
def: InstRW<[SBWriteResGroup21], (instregex "VROUNDSDr")>;
@@ -2270,14 +2270,14 @@ def: InstRW<[SBWriteResGroup90], (instre
def: InstRW<[SBWriteResGroup90], (instregex "CVTSI2SD64rm")>;
def: InstRW<[SBWriteResGroup90], (instregex "CVTSI2SDrm")>;
def: InstRW<[SBWriteResGroup90], (instregex "CVTTPS2DQrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MAXPDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MAXPSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MAXSDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MAXSSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MINPDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MINPSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MINSDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "MINSSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MAX(C?)PDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MAX(C?)PSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MAX(C?)SDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MAX(C?)SSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MIN(C?)PDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MIN(C?)PSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MIN(C?)SDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "MIN(C?)SSrm")>;
def: InstRW<[SBWriteResGroup90], (instregex "MMX_CVTPI2PSirm")>;
def: InstRW<[SBWriteResGroup90], (instregex "MMX_CVTPS2PIirm")>;
def: InstRW<[SBWriteResGroup90], (instregex "MMX_CVTTPS2PIirm")>;
@@ -2305,14 +2305,14 @@ def: InstRW<[SBWriteResGroup90], (instre
def: InstRW<[SBWriteResGroup90], (instregex "VCVTSI2SD64rm")>;
def: InstRW<[SBWriteResGroup90], (instregex "VCVTSI2SDrm")>;
def: InstRW<[SBWriteResGroup90], (instregex "VCVTTPS2DQrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMAXPDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMAXPSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMAXSDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMAXSSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMINPDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMINPSrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMINSDrm")>;
-def: InstRW<[SBWriteResGroup90], (instregex "VMINSSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMAX(C?)PDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMAX(C?)PSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMAX(C?)SDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMAX(C?)SSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMIN(C?)PDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMIN(C?)PSrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMIN(C?)SDrm")>;
+def: InstRW<[SBWriteResGroup90], (instregex "VMIN(C?)SSrm")>;
def: InstRW<[SBWriteResGroup90], (instregex "VROUNDPDm")>;
def: InstRW<[SBWriteResGroup90], (instregex "VROUNDPSm")>;
def: InstRW<[SBWriteResGroup90], (instregex "VROUNDSDm")>;
@@ -2469,10 +2469,10 @@ def: InstRW<[SBWriteResGroup101], (instr
def: InstRW<[SBWriteResGroup101], (instregex "VCVTDQ2PSYrm")>;
def: InstRW<[SBWriteResGroup101], (instregex "VCVTPS2DQYrm")>;
def: InstRW<[SBWriteResGroup101], (instregex "VCVTTPS2DQYrm")>;
-def: InstRW<[SBWriteResGroup101], (instregex "VMAXPDYrm")>;
-def: InstRW<[SBWriteResGroup101], (instregex "VMAXPSYrm")>;
-def: InstRW<[SBWriteResGroup101], (instregex "VMINPDYrm")>;
-def: InstRW<[SBWriteResGroup101], (instregex "VMINPSYrm")>;
+def: InstRW<[SBWriteResGroup101], (instregex "VMAX(C?)PDYrm")>;
+def: InstRW<[SBWriteResGroup101], (instregex "VMAX(C?)PSYrm")>;
+def: InstRW<[SBWriteResGroup101], (instregex "VMIN(C?)PDYrm")>;
+def: InstRW<[SBWriteResGroup101], (instregex "VMIN(C?)PSYrm")>;
def: InstRW<[SBWriteResGroup101], (instregex "VROUNDYPDm")>;
def: InstRW<[SBWriteResGroup101], (instregex "VROUNDYPSm")>;
def: InstRW<[SBWriteResGroup101], (instregex "VSUBPDYrm")>;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=320277&r1=320276&r2=320277&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Sat Dec 9 17:24:05 2017
@@ -1726,14 +1726,14 @@ def: InstRW<[SKLWriteResGroup49], (instr
def: InstRW<[SKLWriteResGroup49], (instregex "CVTDQ2PSrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "CVTPS2DQrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "CVTTPS2DQrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MAXPDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MAXPSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MAXSDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MAXSSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MINPDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MINPSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MINSDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "MINSSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MAX(C?)PDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MAX(C?)PSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MAX(C?)SDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MAX(C?)SSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MIN(C?)PDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MIN(C?)PSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MIN(C?)SDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "MIN(C?)SSrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "PHMINPOSUWrr128")>;
def: InstRW<[SKLWriteResGroup49], (instregex "PMADDUBSWrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "PMADDWDrr")>;
@@ -1755,18 +1755,18 @@ def: InstRW<[SKLWriteResGroup49], (instr
def: InstRW<[SKLWriteResGroup49], (instregex "VCVTPS2DQrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "VCVTTPS2DQYrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "VCVTTPS2DQrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXPDYrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXPDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXPSYrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXPSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXSDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMAXSSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINPDYrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINPDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINPSYrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINPSrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINSDrr")>;
-def: InstRW<[SKLWriteResGroup49], (instregex "VMINSSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)PDYrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)PDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)PSYrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)PSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)SDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMAX(C?)SSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)PDYrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)PDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)PSYrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)PSrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)SDrr")>;
+def: InstRW<[SKLWriteResGroup49], (instregex "VMIN(C?)SSrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "VPHMINPOSUWrr128")>;
def: InstRW<[SKLWriteResGroup49], (instregex "VPMADDUBSWYrr")>;
def: InstRW<[SKLWriteResGroup49], (instregex "VPMADDUBSWrr")>;
@@ -3120,20 +3120,20 @@ def SKLWriteResGroup123 : SchedWriteRes<
}
def: InstRW<[SKLWriteResGroup123], (instregex "CMPSSrm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "CVTPS2PDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "MAXSDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "MAXSSrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "MINSDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "MINSSrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "MAX(C?)SDrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "MAX(C?)SSrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "MIN(C?)SDrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "MIN(C?)SSrm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "MMX_CVTPS2PIirm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "MMX_CVTTPS2PIirm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "VCMPSDrm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "VCMPSSrm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "VCVTPH2PSrm")>;
def: InstRW<[SKLWriteResGroup123], (instregex "VCVTPS2PDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "VMAXSDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "VMAXSSrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "VMINSDrm")>;
-def: InstRW<[SKLWriteResGroup123], (instregex "VMINSSrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "VMAX(C?)SDrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "VMAX(C?)SSrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "VMIN(C?)SDrm")>;
+def: InstRW<[SKLWriteResGroup123], (instregex "VMIN(C?)SSrm")>;
def SKLWriteResGroup124 : SchedWriteRes<[SKLPort5,SKLPort015]> {
let Latency = 9;
@@ -3321,10 +3321,10 @@ def: InstRW<[SKLWriteResGroup135], (inst
def: InstRW<[SKLWriteResGroup135], (instregex "CVTPS2DQrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "CVTSS2SDrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "CVTTPS2DQrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "MAXPDrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "MAXPSrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "MINPDrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "MINPSrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "MAX(C?)PDrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "MAX(C?)PSrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "MIN(C?)PDrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "MIN(C?)PSrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "PHMINPOSUWrm128")>;
def: InstRW<[SKLWriteResGroup135], (instregex "PMADDUBSWrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "PMADDWDrm")>;
@@ -3341,10 +3341,10 @@ def: InstRW<[SKLWriteResGroup135], (inst
def: InstRW<[SKLWriteResGroup135], (instregex "VCVTPS2DQrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "VCVTSS2SDrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "VCVTTPS2DQrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "VMAXPDrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "VMAXPSrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "VMINPDrm")>;
-def: InstRW<[SKLWriteResGroup135], (instregex "VMINPSrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "VMAX(C?)PDrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "VMAX(C?)PSrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "VMIN(C?)PDrm")>;
+def: InstRW<[SKLWriteResGroup135], (instregex "VMIN(C?)PSrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "VPHMINPOSUWrm128")>;
def: InstRW<[SKLWriteResGroup135], (instregex "VPMADDUBSWrm")>;
def: InstRW<[SKLWriteResGroup135], (instregex "VPMADDWDrm")>;
@@ -3516,10 +3516,10 @@ def: InstRW<[SKLWriteResGroup148], (inst
def: InstRW<[SKLWriteResGroup148], (instregex "VCVTPS2DQYrm")>;
def: InstRW<[SKLWriteResGroup148], (instregex "VCVTPS2PDYrm")>;
def: InstRW<[SKLWriteResGroup148], (instregex "VCVTTPS2DQYrm")>;
-def: InstRW<[SKLWriteResGroup148], (instregex "VMAXPDYrm")>;
-def: InstRW<[SKLWriteResGroup148], (instregex "VMAXPSYrm")>;
-def: InstRW<[SKLWriteResGroup148], (instregex "VMINPDYrm")>;
-def: InstRW<[SKLWriteResGroup148], (instregex "VMINPSYrm")>;
+def: InstRW<[SKLWriteResGroup148], (instregex "VMAX(C?)PDYrm")>;
+def: InstRW<[SKLWriteResGroup148], (instregex "VMAX(C?)PSYrm")>;
+def: InstRW<[SKLWriteResGroup148], (instregex "VMIN(C?)PDYrm")>;
+def: InstRW<[SKLWriteResGroup148], (instregex "VMIN(C?)PSYrm")>;
def: InstRW<[SKLWriteResGroup148], (instregex "VPMADDUBSWYrm")>;
def: InstRW<[SKLWriteResGroup148], (instregex "VPMADDWDYrm")>;
def: InstRW<[SKLWriteResGroup148], (instregex "VPMULDQYrm")>;
More information about the llvm-commits
mailing list