From eeb2123a839fe7a6bb25d70f941d50e81ff33cf5 Mon Sep 17 00:00:00 2001 From: Clement Courbet Date: Wed, 2 May 2018 13:40:48 +0000 Subject: [PATCH] [X86] Fix scheduling info for VMPSADBWYrmi. https://reviews.llvm.org/D46356 llvm-svn: 331355 --- llvm/lib/Target/X86/X86SchedBroadwell.td | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td index 0531ef5..1994625 100755 --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -11,7 +11,6 @@ // scheduling and other instruction cost heuristics. // //===----------------------------------------------------------------------===// - def BroadwellModel : SchedMachineModel { // All x86 instructions are modeled as a single micro-op, and BW can decode 4 // instructions per cycle. @@ -156,9 +155,9 @@ def : WriteRes; def : WriteRes; defm : BWWriteResPair; // Floating point add/sub. -defm : BWWriteResPair; // Floating point add/sub (YMM/ZMM). +defm : BWWriteResPair; // Floating point add/sub (YMM/ZMM). defm : BWWriteResPair; // Floating point compare. -defm : BWWriteResPair; // Floating point compare (YMM/ZMM). +defm : BWWriteResPair; // Floating point compare (YMM/ZMM). defm : BWWriteResPair; // Floating point compare to flags. defm : BWWriteResPair; // Floating point multiplication. defm : BWWriteResPair; // Floating point multiplication (YMM/ZMM). @@ -1369,8 +1368,20 @@ def BWWriteResGroup101 : SchedWriteRes<[BWPort1,BWPort23]> { } def: InstRW<[BWWriteResGroup101], (instregex "(ADD|SUB|SUBR)_F(32|64)m", "ILD_F(16|32|64)m", + "VADDPDYrm", + "VADDPSYrm", + "VADDSUBPDYrm", + "VADDSUBPSYrm", + "VCMPPDYrmi", + "VCMPPSYrmi", "VCVTPS2DQYrm", - "VCVTTPS2DQYrm")>; + "VCVTTPS2DQYrm", + "VMAX(C?)PDYrm", + "VMAX(C?)PSYrm", + "VMIN(C?)PDYrm", + "VMIN(C?)PSYrm", + "VSUBPDYrm", + "VSUBPSYrm")>; def BWWriteResGroup102 : SchedWriteRes<[BWPort5,BWPort23]> { let Latency = 9; @@ -1643,7 +1654,7 @@ def: InstRW<[BWWriteResGroup137_1], (instregex "(V?)SQRTSSr")>; def BWWriteResGroup138 : SchedWriteRes<[BWPort0,BWPort5,BWPort23]> { let Latency = 13; let NumMicroOps = 4; - let ResourceCycles = [1,2,1,7]; + let ResourceCycles = [1,2,1]; } def: InstRW<[BWWriteResGroup138], (instregex "VMPSADBWYrmi")>; -- 2.7.4