[llvm] r330546 - [X86] Fix (completely overridden) WriteFHAdd/WritePHAdd classes to allow us to remove unnecessary instrw overrides.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 22 08:25:59 PDT 2018
Author: rksimon
Date: Sun Apr 22 08:25:59 2018
New Revision: 330546
URL: http://llvm.org/viewvc/llvm-project?rev=330546&view=rev
Log:
[X86] Fix (completely overridden) WriteFHAdd/WritePHAdd classes to allow us to remove unnecessary instrw overrides.
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
llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
llvm/trunk/test/CodeGen/X86/avx2-schedule.ll
llvm/trunk/test/CodeGen/X86/xop-schedule.ll
Modified: llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedBroadwell.td?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Sun Apr 22 08:25:59 2018
@@ -314,8 +314,8 @@ def : WriteRes<WriteNop, []>;
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : BWWriteResPair<WriteFHAdd, [BWPort1], 3>;
-defm : BWWriteResPair<WritePHAdd, [BWPort15], 1>;
+defm : BWWriteResPair<WriteFHAdd, [BWPort1,BWPort5], 5, [1,2], 3>;
+defm : BWWriteResPair<WritePHAdd, [BWPort5,BWPort15], 3, [2,1], 3>;
// Remaining instrs.
@@ -681,19 +681,6 @@ def: InstRW<[BWWriteResGroup31], (instre
"VPSRAVD(Y?)rr",
"VPSRLVD(Y?)rr")>;
-def BWWriteResGroup32 : SchedWriteRes<[BWPort5,BWPort15]> {
- let Latency = 3;
- let NumMicroOps = 3;
- let ResourceCycles = [2,1];
-}
-def: InstRW<[BWWriteResGroup32], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
- "(V?)PHADDD(Y?)rr",
- "(V?)PHADDSW(Y?)rr",
- "(V?)PHADDW(Y?)rr",
- "(V?)PHSUBD(Y?)rr",
- "(V?)PHSUBSW(Y?)rr",
- "(V?)PHSUBW(Y?)rr")>;
-
def BWWriteResGroup33 : SchedWriteRes<[BWPort5,BWPort0156]> {
let Latency = 3;
let NumMicroOps = 3;
@@ -876,11 +863,7 @@ def BWWriteResGroup50 : SchedWriteRes<[B
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[BWWriteResGroup50], (instregex "(V?)CVTSI642SSrr",
- "(V?)HADDPD(Y?)rr",
- "(V?)HADDPS(Y?)rr",
- "(V?)HSUBPD(Y?)rr",
- "(V?)HSUBPS(Y?)rr")>;
+def: InstRW<[BWWriteResGroup50], (instregex "(V?)CVTSI642SSrr")>;
def BWWriteResGroup51 : SchedWriteRes<[BWPort1,BWPort6,BWPort06]> {
let Latency = 5;
@@ -1509,19 +1492,6 @@ def: InstRW<[BWWriteResGroup95], (instre
"VPSRAVDrm",
"VPSRLVDrm")>;
-def BWWriteResGroup96 : SchedWriteRes<[BWPort5,BWPort23,BWPort15]> {
- let Latency = 8;
- let NumMicroOps = 4;
- let ResourceCycles = [2,1,1];
-}
-def: InstRW<[BWWriteResGroup96], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rm",
- "(V?)PHADDDrm",
- "(V?)PHADDSWrm",
- "(V?)PHADDWrm",
- "(V?)PHSUBDrm",
- "(V?)PHSUBSWrm",
- "(V?)PHSUBWrm")>;
-
def BWWriteResGroup97 : SchedWriteRes<[BWPort23,BWPort237,BWPort06,BWPort0156]> {
let Latency = 8;
let NumMicroOps = 5;
@@ -1760,16 +1730,6 @@ def BWWriteResGroup118 : SchedWriteRes<[
}
def: InstRW<[BWWriteResGroup118], (instregex "VPTESTYrm")>;
-def BWWriteResGroup119 : SchedWriteRes<[BWPort1,BWPort5,BWPort23]> {
- let Latency = 10;
- let NumMicroOps = 4;
- let ResourceCycles = [1,2,1];
-}
-def: InstRW<[BWWriteResGroup119], (instregex "(V?)HADDPDrm",
- "(V?)HADDPSrm",
- "(V?)HSUBPDrm",
- "(V?)HSUBPSrm")>;
-
def BWWriteResGroup120 : SchedWriteRes<[BWPort0,BWPort1,BWPort5,BWPort23]> {
let Latency = 10;
let NumMicroOps = 4;
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Sun Apr 22 08:25:59 2018
@@ -556,8 +556,8 @@ def : InstRW<[HWWriteFXTRACT], (instrege
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : HWWriteResPair<WriteFHAdd, [HWPort1, HWPort5], 5, [1, 2], 3>;
-defm : HWWriteResPair<WritePHAdd, [HWPort1, HWPort5], 3, [1, 2], 3>;
+defm : HWWriteResPair<WriteFHAdd, [HWPort1, HWPort5], 5, [1,2], 3, 6>;
+defm : HWWriteResPair<WritePHAdd, [HWPort5, HWPort15], 3, [2,1], 3, 6>;
//=== Floating Point XMM and YMM Instructions ===//
@@ -1574,19 +1574,6 @@ def: InstRW<[HWWriteResGroup55], (instre
"VPSRAVD(Y?)rr",
"VPSRLVD(Y?)rr")>;
-def HWWriteResGroup56 : SchedWriteRes<[HWPort5,HWPort15]> {
- let Latency = 3;
- let NumMicroOps = 3;
- let ResourceCycles = [2,1];
-}
-def: InstRW<[HWWriteResGroup56], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
- "(V?)PHADDD(Y?)rr",
- "(V?)PHADDSW(Y?)rr",
- "(V?)PHADDW(Y?)rr",
- "(V?)PHSUBD(Y?)rr",
- "(V?)PHSUBSW(Y?)rr",
- "(V?)PHSUBW(Y?)rr")>;
-
def HWWriteResGroup57 : SchedWriteRes<[HWPort5,HWPort0156]> {
let Latency = 3;
let NumMicroOps = 3;
@@ -2081,16 +2068,6 @@ def HWWriteResGroup95 : SchedWriteRes<[H
}
def: InstRW<[HWWriteResGroup95], (instrs IMUL32r, MUL32r, MULX32rr)>;
-def HWWriteResGroup96 : SchedWriteRes<[HWPort1,HWPort5,HWPort23]> {
- let Latency = 11;
- let NumMicroOps = 4;
- let ResourceCycles = [1,2,1];
-}
-def: InstRW<[HWWriteResGroup96], (instregex "(V?)HADDPDrm",
- "(V?)HADDPSrm",
- "(V?)HSUBPDrm",
- "(V?)HSUBPSrm")>;
-
def HWWriteResGroup96_1 : SchedWriteRes<[HWPort1,HWPort5,HWPort23]> {
let Latency = 12;
let NumMicroOps = 4;
Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Sun Apr 22 08:25:59 2018
@@ -177,10 +177,12 @@ defm : SBWriteResPair<WritePSADBW, [SBP
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : SBWriteResPair<WriteFHAdd, [SBPort1], 3>;
-defm : SBWriteResPair<WritePHAdd, [SBPort15], 1>;
+defm : SBWriteResPair<WriteFHAdd, [SBPort1,SBPort5], 5, [1,2], 3, 6>;
+defm : SBWriteResPair<WritePHAdd, [SBPort15], 3, [3], 3, 6>;
+////////////////////////////////////////////////////////////////////////////////
// String instructions.
+////////////////////////////////////////////////////////////////////////////////
// Packed Compare Implicit Length Strings, Return Mask
def : WriteRes<WritePCmpIStrM, [SBPort0]> {
@@ -618,19 +620,6 @@ def: InstRW<[SBWriteResGroup23_2], (inst
"SHL(8|16|32|64)rCL",
"SHR(8|16|32|64)rCL")>;
-def SBWriteResGroup24 : SchedWriteRes<[SBPort15]> {
- let Latency = 3;
- let NumMicroOps = 3;
- let ResourceCycles = [3];
-}
-def: InstRW<[SBWriteResGroup24], (instregex "MMX_PH(ADD|SUB)(D|SW|W)rr",
- "(V?)PHADDDrr",
- "(V?)PHADDSWrr",
- "(V?)PHADDWrr",
- "(V?)PHSUBDrr",
- "(V?)PHSUBSWrr",
- "(V?)PHSUBWrr")>;
-
def SBWriteResGroup25 : SchedWriteRes<[SBPort015]> {
let Latency = 2;
let NumMicroOps = 3;
@@ -784,11 +773,7 @@ def SBWriteResGroup35 : SchedWriteRes<[S
}
def: InstRW<[SBWriteResGroup35], (instregex "CLI")>;
def: InstRW<[SBWriteResGroup35], (instregex "(V?)CVTSI642SSrr",
- "(V?)CVTSI2SSrr",
- "(V?)HADDPD(Y?)rr",
- "(V?)HADDPS(Y?)rr",
- "(V?)HSUBPD(Y?)rr",
- "(V?)HSUBPS(Y?)rr")>;
+ "(V?)CVTSI2SSrr")>;
def SBWriteResGroup35_2 : SchedWriteRes<[SBPort1,SBPort4,SBPort23]> {
let Latency = 5;
@@ -1453,18 +1438,6 @@ def: InstRW<[SBWriteResGroup95], (instre
"LD_F64m",
"LD_F80m")>;
-def SBWriteResGroup96 : SchedWriteRes<[SBPort23,SBPort15]> {
- let Latency = 9;
- let NumMicroOps = 4;
- let ResourceCycles = [1,3];
-}
-def: InstRW<[SBWriteResGroup96], (instregex "(V?)PHADDDrm",
- "(V?)PHADDSWrm",
- "(V?)PHADDWrm",
- "(V?)PHSUBDrm",
- "(V?)PHSUBSWrm",
- "(V?)PHSUBWrm")>;
-
def SBWriteResGroup97 : SchedWriteRes<[SBPort1,SBPort4,SBPort23]> {
let Latency = 9;
let NumMicroOps = 4;
@@ -1618,16 +1591,6 @@ def: InstRW<[SBWriteResGroup107], (instr
"VCVTPD2PSYrm",
"VCVTTPD2DQYrm")>;
-def SBWriteResGroup109 : SchedWriteRes<[SBPort1,SBPort5,SBPort23]> {
- let Latency = 11;
- let NumMicroOps = 4;
- let ResourceCycles = [1,2,1];
-}
-def: InstRW<[SBWriteResGroup109], (instregex "(V?)HADDPDrm",
- "(V?)HADDPSrm",
- "(V?)HSUBPDrm",
- "(V?)HSUBPSrm")>;
-
def SBWriteResGroup111 : SchedWriteRes<[SBPort0,SBPort23]> {
let Latency = 12;
let NumMicroOps = 2;
@@ -1650,10 +1613,7 @@ def SBWriteResGroup113 : SchedWriteRes<[
let NumMicroOps = 4;
let ResourceCycles = [1,2,1];
}
-def: InstRW<[SBWriteResGroup113], (instregex "VHADDPDYrm",
- "VHADDPSYrm",
- "VHSUBPDYrm",
- "VHSUBPSYrm")>;
+def: InstRW<[SBWriteResGroup113], (instregex "VH(ADD|SUB)(PD|PS)Yrm")>;
def SBWriteResGroup114 : SchedWriteRes<[SBPort1,SBPort23]> {
let Latency = 13;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Sun Apr 22 08:25:59 2018
@@ -320,7 +320,7 @@ def : WriteRes<WriteNop, []>;
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : SKLWriteResPair<WriteFHAdd, [SKLPort1], 3>;
+defm : SKLWriteResPair<WriteFHAdd, [SKLPort5,SKLPort01], 6, [2,1], 3, 6>;
defm : SKLWriteResPair<WritePHAdd, [SKLPort15], 1>;
// Remaining instrs.
@@ -1236,16 +1236,6 @@ def SKLWriteResGroup76 : SchedWriteRes<[
def: InstRW<[SKLWriteResGroup76], (instrs POP16r, POP32r, POP64r)>;
def: InstRW<[SKLWriteResGroup76], (instregex "POP(16|32|64)rmr")>;
-def SKLWriteResGroup77 : SchedWriteRes<[SKLPort5,SKLPort01]> {
- let Latency = 6;
- let NumMicroOps = 3;
- let ResourceCycles = [2,1];
-}
-def: InstRW<[SKLWriteResGroup77], (instregex "(V?)HADDPD(Y?)rr",
- "(V?)HADDPS(Y?)rr",
- "(V?)HSUBPD(Y?)rr",
- "(V?)HSUBPS(Y?)rr")>;
-
def SKLWriteResGroup78 : SchedWriteRes<[SKLPort5,SKLPort01]> {
let Latency = 6;
let NumMicroOps = 3;
@@ -2163,16 +2153,6 @@ def SKLWriteResGroup158 : SchedWriteRes<
}
def: InstRW<[SKLWriteResGroup158], (instregex "VSQRTPSYr")>;
-def SKLWriteResGroup159 : SchedWriteRes<[SKLPort5,SKLPort01,SKLPort23]> {
- let Latency = 12;
- let NumMicroOps = 4;
- let ResourceCycles = [2,1,1];
-}
-def: InstRW<[SKLWriteResGroup159], (instregex "(V?)HADDPDrm",
- "(V?)HADDPSrm",
- "(V?)HSUBPDrm",
- "(V?)HSUBPSrm")>;
-
def SKLWriteResGroup160 : SchedWriteRes<[SKLPort0,SKLPort5,SKLPort23,SKLPort01]> {
let Latency = 12;
let NumMicroOps = 4;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Sun Apr 22 08:25:59 2018
@@ -320,7 +320,7 @@ def : WriteRes<WriteNop, []>;
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : SKXWriteResPair<WriteFHAdd, [SKXPort1], 3>;
+defm : SKXWriteResPair<WriteFHAdd, [SKXPort5,SKXPort015], 6, [2,1], 3, 6>;
defm : SKXWriteResPair<WritePHAdd, [SKXPort15], 1>;
// Remaining instrs.
@@ -2415,21 +2415,9 @@ def SKXWriteResGroup82 : SchedWriteRes<[
let ResourceCycles = [2,1];
}
def: InstRW<[SKXWriteResGroup82], (instregex "CVTSI642SSrr",
- "HADDPDrr",
- "HADDPSrr",
- "HSUBPDrr",
- "HSUBPSrr",
"VCVTSI642SSrr",
"VCVTSI642SSZrr",
- "VCVTUSI642SSZrr",
- "VHADDPDYrr",
- "VHADDPDrr",
- "VHADDPSYrr",
- "VHADDPSrr",
- "VHSUBPDYrr",
- "VHSUBPDrr",
- "VHSUBPSYrr",
- "VHSUBPSrr")>;
+ "VCVTUSI642SSZrr")>;
def SKXWriteResGroup83 : SchedWriteRes<[SKXPort1,SKXPort06,SKXPort0156]> {
let Latency = 6;
@@ -4538,16 +4526,6 @@ def: InstRW<[SKXWriteResGroup177], (inst
"VCVTTPS2QQZrm(b?)",
"VCVTTPS2UQQZrm(b?)")>;
-def SKXWriteResGroup178 : SchedWriteRes<[SKXPort5,SKXPort23,SKXPort015]> {
- let Latency = 12;
- let NumMicroOps = 4;
- let ResourceCycles = [2,1,1];
-}
-def: InstRW<[SKXWriteResGroup178], (instregex "(V?)HADDPDrm",
- "(V?)HADDPSrm",
- "(V?)HSUBPDrm",
- "(V?)HSUBPSrm")>;
-
def SKXWriteResGroup179 : SchedWriteRes<[SKXPort0,SKXPort5,SKXPort23,SKXPort015]> {
let Latency = 12;
let NumMicroOps = 4;
Modified: llvm/trunk/test/CodeGen/X86/avx2-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx2-schedule.ll?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx2-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx2-schedule.ll Sun Apr 22 08:25:59 2018
@@ -3038,8 +3038,8 @@ declare <4 x i64> @llvm.x86.avx2.gather.
define <8 x i32> @test_phaddd(<8 x i32> %a0, <8 x i32> %a1, <8 x i32> *%a2) {
; GENERIC-LABEL: test_phaddd:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphaddd %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddd (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddd %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddd (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddd:
@@ -3081,8 +3081,8 @@ declare <8 x i32> @llvm.x86.avx2.phadd.d
define <16 x i16> @test_phaddsw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
; GENERIC-LABEL: test_phaddsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphaddsw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddsw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddsw %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddsw (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddsw:
@@ -3124,8 +3124,8 @@ declare <16 x i16> @llvm.x86.avx2.phadd.
define <16 x i16> @test_phaddw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
; GENERIC-LABEL: test_phaddw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphaddw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddw %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddw (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddw:
@@ -3167,8 +3167,8 @@ declare <16 x i16> @llvm.x86.avx2.phadd.
define <8 x i32> @test_phsubd(<8 x i32> %a0, <8 x i32> %a1, <8 x i32> *%a2) {
; GENERIC-LABEL: test_phsubd:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphsubd %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubd (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubd %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubd (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubd:
@@ -3210,8 +3210,8 @@ declare <8 x i32> @llvm.x86.avx2.phsub.d
define <16 x i16> @test_phsubsw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
; GENERIC-LABEL: test_phsubsw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphsubsw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubsw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubsw %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubsw (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubsw:
@@ -3253,8 +3253,8 @@ declare <16 x i16> @llvm.x86.avx2.phsub.
define <16 x i16> @test_phsubw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
; GENERIC-LABEL: test_phsubw:
; GENERIC: # %bb.0:
-; GENERIC-NEXT: vphsubw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubw %ymm1, %ymm0, %ymm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubw (%rdi), %ymm0, %ymm0 # sched: [9:1.50]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubw:
Modified: llvm/trunk/test/CodeGen/X86/xop-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/xop-schedule.ll?rev=330546&r1=330545&r2=330546&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/xop-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/xop-schedule.ll Sun Apr 22 08:25:59 2018
@@ -303,8 +303,8 @@ define void @test_vphaddbd(<2 x i64> %a0
; GENERIC-LABEL: test_vphaddbd:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddbd %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddbd (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddbd %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddbd (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -323,8 +323,8 @@ define void @test_vphaddbq(<2 x i64> %a0
; GENERIC-LABEL: test_vphaddbq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddbq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddbq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddbq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddbq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -343,8 +343,8 @@ define void @test_vphaddbw(<2 x i64> %a0
; GENERIC-LABEL: test_vphaddbw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddbw %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddbw (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddbw %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddbw (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -363,8 +363,8 @@ define void @test_vphadddq(<2 x i64> %a0
; GENERIC-LABEL: test_vphadddq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphadddq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphadddq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphadddq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphadddq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -383,8 +383,8 @@ define void @test_vphaddubd(<2 x i64> %a
; GENERIC-LABEL: test_vphaddubd:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddubd %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddubd (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddubd %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddubd (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -403,8 +403,8 @@ define void @test_vphaddubq(<2 x i64> %a
; GENERIC-LABEL: test_vphaddubq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddubq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddubq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddubq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddubq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -423,8 +423,8 @@ define void @test_vphaddubw(<2 x i64> %a
; GENERIC-LABEL: test_vphaddubw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddubw %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddubw (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddubw %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddubw (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -443,8 +443,8 @@ define void @test_vphaddudq(<2 x i64> %a
; GENERIC-LABEL: test_vphaddudq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddudq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddudq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddudq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddudq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -463,8 +463,8 @@ define void @test_vphadduwd(<2 x i64> %a
; GENERIC-LABEL: test_vphadduwd:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphadduwd %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphadduwd (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphadduwd %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphadduwd (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -483,8 +483,8 @@ define void @test_vphadduwq(<2 x i64> %a
; GENERIC-LABEL: test_vphadduwq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphadduwq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphadduwq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphadduwq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphadduwq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -503,8 +503,8 @@ define void @test_vphaddwd(<2 x i64> %a0
; GENERIC-LABEL: test_vphaddwd:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddwd %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddwd (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddwd %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddwd (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -523,8 +523,8 @@ define void @test_vphaddwq(<2 x i64> %a0
; GENERIC-LABEL: test_vphaddwq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphaddwq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphaddwq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphaddwq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphaddwq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -543,8 +543,8 @@ define void @test_vphsubbw(<2 x i64> %a0
; GENERIC-LABEL: test_vphsubbw:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphsubbw %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubbw (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubbw %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubbw (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -563,8 +563,8 @@ define void @test_vphsubdq(<2 x i64> %a0
; GENERIC-LABEL: test_vphsubdq:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphsubdq %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubdq (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubdq %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubdq (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -583,8 +583,8 @@ define void @test_vphsubwd(<2 x i64> %a0
; GENERIC-LABEL: test_vphsubwd:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: vphsubwd %xmm0, %xmm0 # sched: [1:0.50]
-; GENERIC-NEXT: vphsubwd (%rdi), %xmm0 # sched: [6:0.50]
+; GENERIC-NEXT: vphsubwd %xmm0, %xmm0 # sched: [3:1.50]
+; GENERIC-NEXT: vphsubwd (%rdi), %xmm0 # sched: [9:1.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
More information about the llvm-commits
mailing list