summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-23 16:17:56 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-23 16:17:56 +0000
commit256f149bf0f8ef2c83cbb467074f6f62ecb18826 (patch)
treee503043583e3613890b7cc38bc8d8ff90ce6829c /llvm/lib/Target
parentcd1f3e7a788be41fb530fc51ac12b0ba156ecddf (diff)
downloadbcm5719-llvm-256f149bf0f8ef2c83cbb467074f6f62ecb18826.tar.gz
bcm5719-llvm-256f149bf0f8ef2c83cbb467074f6f62ecb18826.zip
[X86][Btver2] Vector permutes use a JFPU01 scheduler pipe and JFPX/JVALU function unit
llvm-svn: 328331
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86ScheduleBtVer2.td36
1 files changed, 18 insertions, 18 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
index 9f4c727609f..97842d2bf67 100644
--- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
@@ -649,66 +649,66 @@ def JWriteVCVTPDYLd: SchedWriteRes<[JLAGU, JFPU1, JSTC, JFPX]> {
}
def : InstRW<[JWriteVCVTPDYLd, ReadAfterLd], (instrs VCVTPD2DQYrm, VCVTTPD2DQYrm, VCVTPD2PSYrm)>;
-def JWritePSHUFB: SchedWriteRes<[JFPU01]> {
+def JWritePSHUFB: SchedWriteRes<[JFPU01, JVALU]> {
let Latency = 2;
- let ResourceCycles = [4];
+ let ResourceCycles = [1, 4];
let NumMicroOps = 3;
}
def : InstRW<[JWritePSHUFB], (instrs PSHUFBrr, VPSHUFBrr)>;
-def JWritePSHUFBLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWritePSHUFBLd: SchedWriteRes<[JLAGU, JFPU01, JVALU]> {
let Latency = 7;
- let ResourceCycles = [1, 4];
+ let ResourceCycles = [1, 1, 4];
let NumMicroOps = 3;
}
def : InstRW<[JWritePSHUFBLd, ReadAfterLd], (instrs PSHUFBrm, VPSHUFBrm)>;
-def JWriteVPERM: SchedWriteRes<[JFPU01]> {
+def JWriteVPERM: SchedWriteRes<[JFPU01, JFPX]> {
let Latency = 2;
- let ResourceCycles = [4];
+ let ResourceCycles = [1, 4];
let NumMicroOps = 3;
}
def : InstRW<[JWriteVPERM], (instrs VPERMILPDrr, VPERMILPSrr)>;
-def JWriteVPERMLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWriteVPERMLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> {
let Latency = 7;
- let ResourceCycles = [1, 4];
+ let ResourceCycles = [1, 1, 4];
let NumMicroOps = 3;
}
def : InstRW<[JWriteVPERMLd, ReadAfterLd], (instrs VPERMILPDrm, VPERMILPSrm)>;
-def JWriteVPERMY: SchedWriteRes<[JFPU01]> {
+def JWriteVPERMY: SchedWriteRes<[JFPU01, JFPX]> {
let Latency = 3;
- let ResourceCycles = [6];
+ let ResourceCycles = [1, 6];
let NumMicroOps = 6;
}
def : InstRW<[JWriteVPERMY], (instrs VBLENDVPDYrr, VBLENDVPSYrr, VPERMILPDYrr, VPERMILPSYrr)>;
-def JWriteVPERMYLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWriteVPERMYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> {
let Latency = 8;
- let ResourceCycles = [1, 6];
+ let ResourceCycles = [1, 1, 6];
let NumMicroOps = 6;
}
def : InstRW<[JWriteVPERMYLd, ReadAfterLd], (instrs VBLENDVPDYrm, VBLENDVPSYrm, VPERMILPDYrm, VPERMILPSYrm)>;
-def JWriteShuffleY: SchedWriteRes<[JFPU01]> {
- let ResourceCycles = [2];
+def JWriteShuffleY: SchedWriteRes<[JFPU01, JFPX]> {
+ let ResourceCycles = [1, 2];
let NumMicroOps = 2;
}
def : InstRW<[JWriteShuffleY], (instrs VMOVDDUPYrr, VMOVSHDUPYrr, VMOVSLDUPYrr,
VPERMILPDYri, VPERMILPSYri, VSHUFPDYrri, VSHUFPSYrri)>;
-def JWriteShuffleYLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWriteShuffleYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> {
let Latency = 6;
- let ResourceCycles = [1, 2];
+ let ResourceCycles = [1, 1, 2];
let NumMicroOps = 2;
}
def : InstRW<[JWriteShuffleYLd, ReadAfterLd], (instrs VMOVDDUPYrm, VMOVSHDUPYrm, VMOVSLDUPYrm,
VPERMILPDYmi, VPERMILPSYmi, VSHUFPDYrmi, VSHUFPSYrmi)>;
-def JWriteVBROADCASTYLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWriteVBROADCASTYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> {
let Latency = 6;
- let ResourceCycles = [1, 4];
+ let ResourceCycles = [1, 1, 4];
}
def : InstRW<[JWriteVBROADCASTYLd, ReadAfterLd], (instrs VBROADCASTSDYrm, VBROADCASTSSYrm)>;
OpenPOWER on IntegriCloud