[llvm] r318024 - [X86][SKX] Adding scheduling info of non-intrinsic + commutable SKX opcodes.

Gadi Haber via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 13 00:42:07 PST 2017


Author: gadi.haber
Date: Mon Nov 13 00:42:07 2017
New Revision: 318024

URL: http://llvm.org/viewvc/llvm-project?rev=318024&view=rev
Log:
[X86][SKX] Adding scheduling info of non-intrinsic + commutable SKX opcodes.

Updated the scheduling information of the SKX subtarget  in the file X86SchedSkylakeServer.td under lib/Target/X86 to:
1. add regular opcodes in addition to the suffixed "_Int" opcodes
2. add the (V)MAXCPD/MAXCPS/MAXCSD/MAXCSS/MINCPD/MINCPS/MINCSD/MINCSS
    instructions that are equivalent to their counterparts without the 'C' as they are part of a hack to
    make floating point min/max commutable under fast math.

Reviewers: zvi, RKSimon, craig.topper
Differential Revision: https://reviews.llvm.org/D39833

Change-Id: Ie13702a5ce1b1a08af91ca637a52b6962881e7d6

Modified:
    llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
    llvm/trunk/test/CodeGen/X86/avx-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse2-schedule.ll

Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=318024&r1=318023&r2=318024&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Mon Nov 13 00:42:07 2017
@@ -693,13 +693,13 @@ def: InstRW<[SKXWriteResGroup5], (instre
 def: InstRW<[SKXWriteResGroup5], (instregex "PCMPGTDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PCMPGTWrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMAXSBrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "PMAXSDrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "PMAX(C?)SDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMAXSWrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMAXUBrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMAXUDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMAXUWrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMINSBrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "PMINSDrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "PMIN(C?)SDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMINSWrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMINUBrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "PMINUDrr")>;
@@ -786,11 +786,11 @@ def: InstRW<[SKXWriteResGroup5], (instre
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSBZ256rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSBZrr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSBrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSDYrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSDZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSDZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSDZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSDrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMAX(C?)SDYrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMAX(C?)SDZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMAX(C?)SDZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMAX(C?)SDZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMAX(C?)SDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSWYrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSWZ128rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMAXSWZ256rr(b?)(k?)(z?)")>;
@@ -816,11 +816,11 @@ def: InstRW<[SKXWriteResGroup5], (instre
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSBZ256rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSBZrr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSBrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSDYrr")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSDZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSDZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSDZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSDrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMIN(C?)SDYrr")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMIN(C?)SDZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMIN(C?)SDZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMIN(C?)SDZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup5], (instregex "VPMIN(C?)SDrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSWYrr")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSWZ128rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup5], (instregex "VPMINSWZ256rr(b?)(k?)(z?)")>;
@@ -1918,8 +1918,8 @@ def: InstRW<[SKXWriteResGroup32], (instr
 def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZ128rri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZ256rri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZrri(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSDZrr_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSSZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSDZrr(_Int?)(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSSZrr(_Int?)(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZ128rri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZ256rri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZrri(b?)(k?)(z?)")>;
@@ -2411,14 +2411,14 @@ def: InstRW<[SKXWriteResGroup50], (instr
 def: InstRW<[SKXWriteResGroup50], (instregex "CVTDQ2PSrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "CVTPS2DQrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "CVTTPS2DQrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MAXPDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MAXPSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MAXSDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MAXSSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MINPDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MINPSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MINSDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "MINSSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MAX(C?)PDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MAX(C?)PSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MAX(C?)SDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MAX(C?)SSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MIN(C?)PDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MIN(C?)PSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MIN(C?)SDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "MIN(C?)SSrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "MULPDrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "MULPSrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "MULSDrr")>;
@@ -2446,9 +2446,9 @@ def: InstRW<[SKXWriteResGroup50], (instr
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDPSZ256rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDPSZrr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDPSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VADDSDZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VADDSDZrr(_Int?)(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDSDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VADDSSZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VADDSSZrr(_Int?)(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDSSrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDSUBPDYrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VADDSUBPDrr")>;
@@ -2520,9 +2520,9 @@ def: InstRW<[SKXWriteResGroup50], (instr
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSZ256r(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSZr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDZr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDZr(_Int?)(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSZr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSZr(_Int?)(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PDYr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PDZ128r(b?)(k?)(z?)")>;
@@ -2754,34 +2754,34 @@ def: InstRW<[SKXWriteResGroup50], (instr
 def: InstRW<[SKXWriteResGroup50], (instregex "VGETMANTPSZrri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VGETMANTSDZ128rri(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VGETMANTSSZ128rri(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPDYrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPDZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPDZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPDZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPSYrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPSZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPSZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPSZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXPSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXSDZrr_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXSDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXSSZrr_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMAXSSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPDYrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPDZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPDZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPDZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPSYrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPSZ128rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPSZ256rr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPSZrr(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINPSrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINSDZrr_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINSDrr")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINSSZrr_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup50], (instregex "VMINSSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PDYrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PDZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PDZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PDZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PSYrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PSZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PSZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PSZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)PSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)SDZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)SDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)SSZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMAX(C?)SSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PDYrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PDZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PDZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PDZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PSYrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PSZ128rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PSZ256rr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PSZrr(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)PSrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)SDZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)SDrr")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)SSZrr_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup50], (instregex "VMIN(C?)SSrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VMULPDYrr")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VMULPDZ128rr(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup50], (instregex "VMULPDZ256rr(b?)(k?)(z?)")>;
@@ -3878,13 +3878,13 @@ def: InstRW<[SKXWriteResGroup94], (instr
 def: InstRW<[SKXWriteResGroup94], (instregex "PCMPGTDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PCMPGTWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMAXSBrm")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "PMAXSDrm")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "PMAX(C?)SDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMAXSWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMAXUBrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMAXUDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMAXUWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMINSBrm")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "PMINSDrm")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "PMIN(C?)SDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMINSWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMINUBrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "PMINUDrm")>;
@@ -3932,8 +3932,8 @@ def: InstRW<[SKXWriteResGroup94], (instr
 def: InstRW<[SKXWriteResGroup94], (instregex "VPCMPGTWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSBZ128rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSBrm")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSDZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSDrm")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "VPMAX(C?)SDZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "VPMAX(C?)SDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSWZ128rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXSWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXUBZ128rm(b?)(k?)(z?)")>;
@@ -3944,8 +3944,8 @@ def: InstRW<[SKXWriteResGroup94], (instr
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMAXUWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSBZ128rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSBrm")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSDZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSDrm")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "VPMIN(C?)SDZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup94], (instregex "VPMIN(C?)SDrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSWZ128rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMINSWrm")>;
 def: InstRW<[SKXWriteResGroup94], (instregex "VPMINUBZ128rm(b?)(k?)(z?)")>;
@@ -4547,9 +4547,9 @@ def: InstRW<[SKXWriteResGroup120], (inst
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSBYrm")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSBZ256rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSBZrm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSDYrm")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSDZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSDZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMAX(C?)SDYrm")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMAX(C?)SDZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMAX(C?)SDZrm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSWYrm")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSWZ256rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMAXSWZrm(b?)(k?)(z?)")>;
@@ -4565,9 +4565,9 @@ def: InstRW<[SKXWriteResGroup120], (inst
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSBYrm")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSBZ256rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSBZrm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSDYrm")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSDZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSDZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMIN(C?)SDYrm")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMIN(C?)SDZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup120], (instregex "VPMIN(C?)SDZrm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSWYrm")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSWZ256rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup120], (instregex "VPMINSWZrm(b?)(k?)(z?)")>;
@@ -5067,10 +5067,10 @@ def: InstRW<[SKXWriteResGroup137], (inst
 def: InstRW<[SKXWriteResGroup137], (instregex "ADDSSrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "CMPSSrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "CVTPS2PDrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "MAXSDrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "MAXSSrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "MINSDrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "MINSSrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "MAX(C?)SDrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "MAX(C?)SSrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "MIN(C?)SDrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "MIN(C?)SSrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "MMX_CVTPS2PIirm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "MMX_CVTTPS2PIirm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "MULSDrm")>;
@@ -5107,10 +5107,10 @@ def: InstRW<[SKXWriteResGroup137], (inst
 def: InstRW<[SKXWriteResGroup137], (instregex "VFNMSUB213SSm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "VFNMSUB231SDm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "VFNMSUB231SSm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "VMAXSDrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "VMAXSSrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "VMINSDrm")>;
-def: InstRW<[SKXWriteResGroup137], (instregex "VMINSSrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "VMAX(C?)SDrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "VMAX(C?)SSrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "VMIN(C?)SDrm")>;
+def: InstRW<[SKXWriteResGroup137], (instregex "VMIN(C?)SSrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "VMULSDrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "VMULSSrm")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "VSUBSDrm")>;
@@ -5393,10 +5393,10 @@ def: InstRW<[SKXWriteResGroup149], (inst
 def: InstRW<[SKXWriteResGroup149], (instregex "CVTPS2DQrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "CVTSS2SDrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "CVTTPS2DQrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "MAXPDrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "MAXPSrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "MINPDrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "MINPSrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "MAX(C?)PDrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "MAX(C?)PSrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "MIN(C?)PDrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "MIN(C?)PSrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "MULPDrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "MULPSrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "PHMINPOSUWrm128")>;
@@ -5554,18 +5554,18 @@ def: InstRW<[SKXWriteResGroup149], (inst
 def: InstRW<[SKXWriteResGroup149], (instregex "VGETMANTPSZ128rm(b?)i(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "VGETMANTSDZ128rmi(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "VGETMANTSSZ128rmi(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXPDZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXPDrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXPSZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXPSrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXSDZrm_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMAXSSZrm_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINPDZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINPDrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINPSZ128rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINPSrm")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINSDZrm_Int(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup149], (instregex "VMINSSZrm_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PDZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PDrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PSZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PSrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SDZrm_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SSZrm_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PDZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PDrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PSZ128rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PSrm")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SDZrm_Int(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SSZrm_Int(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "VMULPDZ128rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "VMULPDrm")>;
 def: InstRW<[SKXWriteResGroup149], (instregex "VMULPSZ128rm(b?)(k?)(z?)")>;
@@ -5896,18 +5896,18 @@ def: InstRW<[SKXWriteResGroup161], (inst
 def: InstRW<[SKXWriteResGroup161], (instregex "VGETMANTPDZrm(b?)i(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup161], (instregex "VGETMANTPSZ256rm(b?)i(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup161], (instregex "VGETMANTPSZrm(b?)i(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPDYrm")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPDZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPDZrm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPSYrm")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPSZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMAXPSZrm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPDYrm")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPDZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPDZrm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPSYrm")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPSZ256rm(b?)(k?)(z?)")>;
-def: InstRW<[SKXWriteResGroup161], (instregex "VMINPSZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PDYrm")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PDZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PDZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PSYrm")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PSZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMAX(C?)PSZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PDYrm")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PDZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PDZrm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PSYrm")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PSZ256rm(b?)(k?)(z?)")>;
+def: InstRW<[SKXWriteResGroup161], (instregex "VMIN(C?)PSZrm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup161], (instregex "VMULPDYrm")>;
 def: InstRW<[SKXWriteResGroup161], (instregex "VMULPDZ256rm(b?)(k?)(z?)")>;
 def: InstRW<[SKXWriteResGroup161], (instregex "VMULPDZrm(b?)(k?)(z?)")>;

Modified: llvm/trunk/test/CodeGen/X86/avx-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-schedule.ll?rev=318024&r1=318023&r2=318024&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx-schedule.ll Mon Nov 13 00:42:07 2017
@@ -2329,8 +2329,8 @@ define <4 x double> @test_maxpd(<4 x dou
 ;
 ; SKX-LABEL: test_maxpd:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vmaxpd %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
-; SKX-NEXT:    vmaxpd (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
+; SKX-NEXT:    vmaxpd %ymm1, %ymm0, %ymm0 # sched: [4:0.33]
+; SKX-NEXT:    vmaxpd (%rdi), %ymm0, %ymm0 # sched: [11:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_maxpd:
@@ -2384,8 +2384,8 @@ define <8 x float> @test_maxps(<8 x floa
 ;
 ; SKX-LABEL: test_maxps:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vmaxps %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
-; SKX-NEXT:    vmaxps (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
+; SKX-NEXT:    vmaxps %ymm1, %ymm0, %ymm0 # sched: [4:0.33]
+; SKX-NEXT:    vmaxps (%rdi), %ymm0, %ymm0 # sched: [11:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_maxps:
@@ -2439,8 +2439,8 @@ define <4 x double> @test_minpd(<4 x dou
 ;
 ; SKX-LABEL: test_minpd:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vminpd %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
-; SKX-NEXT:    vminpd (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
+; SKX-NEXT:    vminpd %ymm1, %ymm0, %ymm0 # sched: [4:0.33]
+; SKX-NEXT:    vminpd (%rdi), %ymm0, %ymm0 # sched: [11:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_minpd:
@@ -2494,8 +2494,8 @@ define <8 x float> @test_minps(<8 x floa
 ;
 ; SKX-LABEL: test_minps:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vminps %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
-; SKX-NEXT:    vminps (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
+; SKX-NEXT:    vminps %ymm1, %ymm0, %ymm0 # sched: [4:0.33]
+; SKX-NEXT:    vminps (%rdi), %ymm0, %ymm0 # sched: [11:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_minps:

Modified: llvm/trunk/test/CodeGen/X86/sse-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse-schedule.ll?rev=318024&r1=318023&r2=318024&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse-schedule.ll Mon Nov 13 00:42:07 2017
@@ -1305,8 +1305,8 @@ define <4 x float> @test_maxps(<4 x floa
 ;
 ; SKX-LABEL: test_maxps:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vmaxps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SKX-NEXT:    vmaxps (%rdi), %xmm0, %xmm0 # sched: [8:1.00]
+; SKX-NEXT:    vmaxps %xmm1, %xmm0, %xmm0 # sched: [4:0.33]
+; SKX-NEXT:    vmaxps (%rdi), %xmm0, %xmm0 # sched: [10:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_maxps:
@@ -1439,8 +1439,8 @@ define <4 x float> @test_minps(<4 x floa
 ;
 ; SKX-LABEL: test_minps:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vminps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SKX-NEXT:    vminps (%rdi), %xmm0, %xmm0 # sched: [8:1.00]
+; SKX-NEXT:    vminps %xmm1, %xmm0, %xmm0 # sched: [4:0.33]
+; SKX-NEXT:    vminps (%rdi), %xmm0, %xmm0 # sched: [10:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_minps:

Modified: llvm/trunk/test/CodeGen/X86/sse2-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse2-schedule.ll?rev=318024&r1=318023&r2=318024&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2-schedule.ll Mon Nov 13 00:42:07 2017
@@ -2303,8 +2303,8 @@ define <2 x double> @test_maxpd(<2 x dou
 ;
 ; SKX-LABEL: test_maxpd:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vmaxpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SKX-NEXT:    vmaxpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00]
+; SKX-NEXT:    vmaxpd %xmm1, %xmm0, %xmm0 # sched: [4:0.33]
+; SKX-NEXT:    vmaxpd (%rdi), %xmm0, %xmm0 # sched: [10:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_maxpd:
@@ -2437,8 +2437,8 @@ define <2 x double> @test_minpd(<2 x dou
 ;
 ; SKX-LABEL: test_minpd:
 ; SKX:       # BB#0:
-; SKX-NEXT:    vminpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SKX-NEXT:    vminpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00]
+; SKX-NEXT:    vminpd %xmm1, %xmm0, %xmm0 # sched: [4:0.33]
+; SKX-NEXT:    vminpd (%rdi), %xmm0, %xmm0 # sched: [10:0.50]
 ; SKX-NEXT:    retq # sched: [7:1.00]
 ;
 ; BTVER2-LABEL: test_minpd:




More information about the llvm-commits mailing list