forked from OSchip/llvm-project
[X86] Use instrs instead of instregex for gather/scatter instructions in the scheduler models. Combine into single InstrRW entries.
The reduces the number of scheduler groups in subtarget info. llvm-svn: 320923
This commit is contained in:
parent
5f022d278b
commit
17a311831c
|
@ -3710,50 +3710,50 @@ def BWWriteResGroup183_1 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156
|
|||
let NumMicroOps = 7;
|
||||
let ResourceCycles = [1,3,2,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_1], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_1], (instrs VGATHERQPDrm)>;
|
||||
|
||||
def BWWriteResGroup183_2 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 23;
|
||||
let NumMicroOps = 9;
|
||||
let ResourceCycles = [1,3,4,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_2], (instregex "VGATHERQPDYrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_2], (instrs VGATHERQPDYrm)>;
|
||||
|
||||
def BWWriteResGroup183_3 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 24;
|
||||
let NumMicroOps = 9;
|
||||
let ResourceCycles = [1,5,2,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_3], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_3], (instrs VGATHERQPSYrm)>;
|
||||
|
||||
def BWWriteResGroup183_4 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 25;
|
||||
let NumMicroOps = 7;
|
||||
let ResourceCycles = [1,3,2,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_4], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_4], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_4], (instrs VGATHERDPDrm,
|
||||
VGATHERDPSrm)>;
|
||||
|
||||
def BWWriteResGroup183_5 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 26;
|
||||
let NumMicroOps = 9;
|
||||
let ResourceCycles = [1,5,2,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_5], (instregex "VGATHERDPDYrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_5], (instrs VGATHERDPDYrm)>;
|
||||
|
||||
def BWWriteResGroup183_6 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 26;
|
||||
let NumMicroOps = 14;
|
||||
let ResourceCycles = [1,4,8,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_6], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_6], (instrs VGATHERDPSYrm)>;
|
||||
|
||||
def BWWriteResGroup183_7 : SchedWriteRes<[BWPort4, BWPort5, BWPort23, BWPort0156]> {
|
||||
let Latency = 27;
|
||||
let NumMicroOps = 9;
|
||||
let ResourceCycles = [1,5,2,1];
|
||||
}
|
||||
def: InstRW<[BWWriteResGroup183_7], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[BWWriteResGroup183_7], (instrs VGATHERQPSrm)>;
|
||||
|
||||
def BWWriteResGroup184 : SchedWriteRes<[BWPort0,BWPort5,BWPort015]> {
|
||||
let Latency = 29;
|
||||
|
|
|
@ -4319,69 +4319,69 @@ def HWWriteResGroup184 : SchedWriteRes<[HWPort0, HWPort5, HWPort15, HWPort015, H
|
|||
let NumMicroOps = 12;
|
||||
let ResourceCycles = [2,2,1,3,2,2];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup184], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[HWWriteResGroup184], (instregex "VPGATHERDQrm")>;
|
||||
def: InstRW<[HWWriteResGroup184], (instregex "VPGATHERDDrm")>;
|
||||
def: InstRW<[HWWriteResGroup184], (instrs VGATHERDPDrm,
|
||||
VPGATHERDQrm,
|
||||
VPGATHERDDrm)>;
|
||||
|
||||
def HWWriteResGroup185 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 24;
|
||||
let NumMicroOps = 22;
|
||||
let ResourceCycles = [5,3,4,1,5,4];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup185], (instregex "VGATHERQPDYrm")>;
|
||||
def: InstRW<[HWWriteResGroup185], (instregex "VPGATHERQQYrm")>;
|
||||
def: InstRW<[HWWriteResGroup185], (instrs VGATHERQPDYrm,
|
||||
VPGATHERQQYrm)>;
|
||||
|
||||
def HWWriteResGroup186 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 28;
|
||||
let NumMicroOps = 22;
|
||||
let ResourceCycles = [5,3,4,1,5,4];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup186], (instregex "VPGATHERQDYrm")>;
|
||||
def: InstRW<[HWWriteResGroup186], (instrs VPGATHERQDYrm)>;
|
||||
|
||||
def HWWriteResGroup187 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 25;
|
||||
let NumMicroOps = 22;
|
||||
let ResourceCycles = [5,3,4,1,5,4];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup187], (instregex "VPGATHERQDrm")>;
|
||||
def: InstRW<[HWWriteResGroup187], (instrs VPGATHERQDrm)>;
|
||||
|
||||
def HWWriteResGroup188 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 27;
|
||||
let NumMicroOps = 20;
|
||||
let ResourceCycles = [3,3,4,1,5,4];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup188], (instregex "VGATHERDPDYrm")>;
|
||||
def: InstRW<[HWWriteResGroup188], (instregex "VPGATHERDQYrm")>;
|
||||
def: InstRW<[HWWriteResGroup188], (instrs VGATHERDPDYrm,
|
||||
VPGATHERDQYrm)>;
|
||||
|
||||
def HWWriteResGroup189 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 27;
|
||||
let NumMicroOps = 34;
|
||||
let ResourceCycles = [5,3,8,1,9,8];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup189], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[HWWriteResGroup189], (instregex "VPGATHERDDYrm")>;
|
||||
def: InstRW<[HWWriteResGroup189], (instrs VGATHERDPSYrm,
|
||||
VPGATHERDDYrm)>;
|
||||
|
||||
def HWWriteResGroup190 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 23;
|
||||
let NumMicroOps = 14;
|
||||
let ResourceCycles = [3,3,2,1,3,2];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup190], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[HWWriteResGroup190], (instregex "VPGATHERQQrm")>;
|
||||
def: InstRW<[HWWriteResGroup190], (instrs VGATHERQPDrm,
|
||||
VPGATHERQQrm)>;
|
||||
|
||||
def HWWriteResGroup191 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 28;
|
||||
let NumMicroOps = 15;
|
||||
let ResourceCycles = [3,3,2,1,4,2];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup191], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[HWWriteResGroup191], (instrs VGATHERQPSYrm)>;
|
||||
|
||||
def HWWriteResGroup192 : SchedWriteRes<[HWPort0, HWPort5, HWPort06, HWPort15, HWPort015, HWPort23]> {
|
||||
let Latency = 25;
|
||||
let NumMicroOps = 15;
|
||||
let ResourceCycles = [3,3,2,1,4,2];
|
||||
}
|
||||
def: InstRW<[HWWriteResGroup192], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[HWWriteResGroup192], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[HWWriteResGroup192], (instrs VGATHERQPSrm,
|
||||
VGATHERDPSrm)>;
|
||||
|
||||
} // SchedModel
|
||||
|
|
|
@ -3786,42 +3786,28 @@ def SKLWriteResGroup196_1 : SchedWriteRes<[SKLPort0, SKLPort23, SKLPort5, SKLPor
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERDDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERDQrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERQDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERQQrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERDDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERQDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERDQrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VPGATHERQQrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_1], (instrs VGATHERDPSrm,
|
||||
VGATHERDPDrm,
|
||||
VGATHERQPDrm,
|
||||
VGATHERQPSrm,
|
||||
VPGATHERDDrm,
|
||||
VPGATHERDQrm,
|
||||
VPGATHERQDrm,
|
||||
VPGATHERQQrm)>;
|
||||
|
||||
def SKLWriteResGroup196_2 : SchedWriteRes<[SKLPort0, SKLPort23, SKLPort5, SKLPort015]> {
|
||||
let Latency = 25;
|
||||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERQPDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERDDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERDQYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERQDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERQQYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERDDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERQDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERDQYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VPGATHERQQYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instregex "VGATHERDPDYrm")>;
|
||||
def: InstRW<[SKLWriteResGroup196_2], (instrs VGATHERDPSYrm,
|
||||
VGATHERQPDYrm,
|
||||
VGATHERQPSYrm,
|
||||
VPGATHERDDYrm,
|
||||
VPGATHERDQYrm,
|
||||
VPGATHERQDYrm,
|
||||
VPGATHERQQYrm,
|
||||
VGATHERDPDYrm)>;
|
||||
|
||||
def SKLWriteResGroup197 : SchedWriteRes<[SKLPort0,SKLPort23]> {
|
||||
let Latency = 23;
|
||||
|
|
|
@ -4055,10 +4055,10 @@ def SKXWriteResGroup110 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort237,SKXPort015
|
|||
let NumMicroOps = 7;
|
||||
let ResourceCycles = [1,2,2,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup110], (instregex "VPSCATTERDQZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup110], (instregex "VPSCATTERQQZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup110], (instregex "VSCATTERDPDZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup110], (instregex "VSCATTERQPDZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup110], (instrs VPSCATTERDQZ128mr,
|
||||
VPSCATTERQQZ128mr,
|
||||
VSCATTERDPDZ128mr,
|
||||
VSCATTERQPDZ128mr)>;
|
||||
|
||||
def SKXWriteResGroup111 : SchedWriteRes<[SKXPort6,SKXPort06,SKXPort15,SKXPort0156]> {
|
||||
let Latency = 7;
|
||||
|
@ -4072,27 +4072,27 @@ def SKXWriteResGroup112 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort237,SKXPort015
|
|||
let NumMicroOps = 11;
|
||||
let ResourceCycles = [1,4,4,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup112], (instregex "VPSCATTERDQZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup112], (instregex "VPSCATTERQQZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup112], (instregex "VSCATTERDPDZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup112], (instregex "VSCATTERQPDZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup112], (instrs VPSCATTERDQZ256mr,
|
||||
VPSCATTERQQZ256mr,
|
||||
VSCATTERDPDZ256mr,
|
||||
VSCATTERQPDZ256mr)>;
|
||||
|
||||
def SKXWriteResGroup113 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort237,SKXPort0156]> {
|
||||
let Latency = 7;
|
||||
let NumMicroOps = 19;
|
||||
let ResourceCycles = [1,8,8,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup113], (instregex "VPSCATTERDQZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup113], (instregex "VPSCATTERQQZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup113], (instregex "VSCATTERDPDZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup113], (instregex "VSCATTERQPDZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup113], (instrs VPSCATTERDQZmr,
|
||||
VPSCATTERQQZmr,
|
||||
VSCATTERDPDZmr,
|
||||
VSCATTERQPDZmr)>;
|
||||
|
||||
def SKXWriteResGroup114 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort5,SKXPort237,SKXPort0156]> {
|
||||
let Latency = 7;
|
||||
let NumMicroOps = 36;
|
||||
let ResourceCycles = [1,16,1,16,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup114], (instregex "VSCATTERDPSZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup114], (instrs VSCATTERDPSZmr)>;
|
||||
|
||||
def SKXWriteResGroup115 : SchedWriteRes<[SKXPort0]> {
|
||||
let Latency = 8;
|
||||
|
@ -4725,33 +4725,33 @@ def SKXWriteResGroup131 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort5,SKXPort237,S
|
|||
let NumMicroOps = 8;
|
||||
let ResourceCycles = [1,2,1,2,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup131], (instregex "VPSCATTERQDZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup131], (instregex "VPSCATTERQDZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup131], (instregex "VSCATTERQPSZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup131], (instregex "VSCATTERQPSZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup131], (instrs VPSCATTERQDZ128mr,
|
||||
VPSCATTERQDZ256mr,
|
||||
VSCATTERQPSZ128mr,
|
||||
VSCATTERQPSZ256mr)>;
|
||||
|
||||
def SKXWriteResGroup132 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort5,SKXPort237,SKXPort0156]> {
|
||||
let Latency = 8;
|
||||
let NumMicroOps = 12;
|
||||
let ResourceCycles = [1,4,1,4,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup132], (instregex "VPSCATTERDDZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup132], (instregex "VSCATTERDPSZ128mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup132], (instrs VPSCATTERDDZ128mr,
|
||||
VSCATTERDPSZ128mr)>;
|
||||
|
||||
def SKXWriteResGroup133 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort5,SKXPort237,SKXPort0156]> {
|
||||
let Latency = 8;
|
||||
let NumMicroOps = 20;
|
||||
let ResourceCycles = [1,8,1,8,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup133], (instregex "VPSCATTERDDZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup133], (instregex "VSCATTERDPSZ256mr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup133], (instrs VPSCATTERDDZ256mr,
|
||||
VSCATTERDPSZ256mr)>;
|
||||
|
||||
def SKXWriteResGroup134 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort5,SKXPort237,SKXPort0156]> {
|
||||
let Latency = 8;
|
||||
let NumMicroOps = 36;
|
||||
let ResourceCycles = [1,16,1,16,2];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup134], (instregex "VPSCATTERDDZmr(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup134], (instrs VPSCATTERDDZmr)>;
|
||||
|
||||
def SKXWriteResGroup135 : SchedWriteRes<[SKXPort0,SKXPort23]> {
|
||||
let Latency = 9;
|
||||
|
@ -6067,9 +6067,9 @@ def SKXWriteResGroup214 : SchedWriteRes<[]> {
|
|||
let Latency = 20;
|
||||
let NumMicroOps = 0;
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup214], (instregex "VGATHERDPSZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup214], (instregex "VGATHERQPSZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup214], (instregex "VPGATHERDDZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup214], (instrs VGATHERDPSZ128rm,
|
||||
VGATHERQPSZrm,
|
||||
VPGATHERDDZ128rm)>;
|
||||
|
||||
def SKXWriteResGroup215 : SchedWriteRes<[SKXPort0]> {
|
||||
let Latency = 20;
|
||||
|
@ -6102,10 +6102,10 @@ def SKXWriteResGroup218 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup218], (instregex "VGATHERQPSZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup218], (instregex "VGATHERQPSZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup218], (instregex "VPGATHERQDZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup218], (instregex "VPGATHERQDZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup218], (instrs VGATHERQPSZ128rm,
|
||||
VGATHERQPSZ256rm,
|
||||
VPGATHERQDZ128rm,
|
||||
VPGATHERQDZ256rm)>;
|
||||
|
||||
def SKXWriteResGroup219 : SchedWriteRes<[SKXPort4,SKXPort5,SKXPort6,SKXPort23,SKXPort237,SKXPort06,SKXPort0156]> {
|
||||
let Latency = 20;
|
||||
|
@ -6152,52 +6152,52 @@ def SKXWriteResGroup224 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup224], (instregex "VGATHERDPDZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup224], (instregex "VGATHERQPDZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup224], (instregex "VPGATHERDQZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup224], (instregex "VPGATHERQQZ128rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup224], (instrs VGATHERDPDZ128rm,
|
||||
VGATHERQPDZ128rm,
|
||||
VPGATHERDQZ128rm,
|
||||
VPGATHERQQZ128rm)>;
|
||||
|
||||
def SKXWriteResGroup224_2 : SchedWriteRes<[SKXPort0, SKXPort23, SKXPort5, SKXPort015]> {
|
||||
let Latency = 22;
|
||||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERDDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERDQrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERQDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERQQrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERDDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERQDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERDQrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VPGATHERQQrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERDPSrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERQPSrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERDPDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instregex "VGATHERQPDrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_2], (instrs VGATHERDPSrm,
|
||||
VGATHERDPDrm,
|
||||
VGATHERQPDrm,
|
||||
VGATHERQPSrm,
|
||||
VPGATHERDDrm,
|
||||
VPGATHERDQrm,
|
||||
VPGATHERQDrm,
|
||||
VPGATHERQQrm,
|
||||
VPGATHERDDrm,
|
||||
VPGATHERQDrm,
|
||||
VPGATHERDQrm,
|
||||
VPGATHERQQrm,
|
||||
VGATHERDPSrm,
|
||||
VGATHERQPSrm,
|
||||
VGATHERDPDrm,
|
||||
VGATHERQPDrm)>;
|
||||
|
||||
def SKXWriteResGroup224_3 : SchedWriteRes<[SKXPort0, SKXPort23, SKXPort5, SKXPort015]> {
|
||||
let Latency = 25;
|
||||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERQPDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERDDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERDQYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERQDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERQQYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERDDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERQDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERDQYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VPGATHERQQYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERDPSYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERQPSYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instregex "VGATHERDPDYrm")>;
|
||||
def: InstRW<[SKXWriteResGroup224_3], (instrs VGATHERDPSYrm,
|
||||
VGATHERQPDYrm,
|
||||
VGATHERQPSYrm,
|
||||
VPGATHERDDYrm,
|
||||
VPGATHERDQYrm,
|
||||
VPGATHERQDYrm,
|
||||
VPGATHERQQYrm,
|
||||
VPGATHERDDYrm,
|
||||
VPGATHERQDYrm,
|
||||
VPGATHERDQYrm,
|
||||
VPGATHERQQYrm,
|
||||
VGATHERDPSYrm,
|
||||
VGATHERQPSYrm,
|
||||
VGATHERDPDYrm)>;
|
||||
|
||||
def SKXWriteResGroup225 : SchedWriteRes<[SKXPort5,SKXPort01,SKXPort015]> {
|
||||
let Latency = 22;
|
||||
|
@ -6276,11 +6276,11 @@ def SKXWriteResGroup234 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup234], (instregex "VGATHERDPDZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup234], (instregex "VGATHERQPDZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup234], (instregex "VPGATHERDQZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup234], (instregex "VPGATHERQDZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup234], (instregex "VPGATHERQQZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup234], (instrs VGATHERDPDZ256rm,
|
||||
VGATHERQPDZ256rm,
|
||||
VPGATHERDQZ256rm,
|
||||
VPGATHERQDZrm,
|
||||
VPGATHERQQZ256rm)>;
|
||||
|
||||
def SKXWriteResGroup235 : SchedWriteRes<[SKXPort0,SKXPort5,SKXPort23,SKXPort015,SKXPort0156]> {
|
||||
let Latency = 25;
|
||||
|
@ -6310,10 +6310,10 @@ def SKXWriteResGroup238 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup238], (instregex "VGATHERDPDZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup238], (instregex "VGATHERQPDZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup238], (instregex "VPGATHERDQZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup238], (instregex "VPGATHERQQZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup238], (instrs VGATHERDPDZrm,
|
||||
VGATHERQPDZrm,
|
||||
VPGATHERDQZrm,
|
||||
VPGATHERQQZrm)>;
|
||||
|
||||
def SKXWriteResGroup239 : SchedWriteRes<[SKXPort0,SKXPort23]> {
|
||||
let Latency = 27;
|
||||
|
@ -6328,8 +6328,8 @@ def SKXWriteResGroup240 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup240], (instregex "VGATHERDPSZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup240], (instregex "VPGATHERDDZ256rm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup240], (instrs VGATHERDPSZ256rm,
|
||||
VPGATHERDDZ256rm)>;
|
||||
|
||||
def SKXWriteResGroup241 : SchedWriteRes<[SKXPort0,SKXPort5,SKXPort23,SKXPort0156]> {
|
||||
let Latency = 28;
|
||||
|
@ -6366,8 +6366,8 @@ def SKXWriteResGroup245 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort01
|
|||
let NumMicroOps = 5;
|
||||
let ResourceCycles = [1,2,1,1];
|
||||
}
|
||||
def: InstRW<[SKXWriteResGroup245], (instregex "VGATHERDPSZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup245], (instregex "VPGATHERDDZrm(b?)(k?)(z?)")>;
|
||||
def: InstRW<[SKXWriteResGroup245], (instrs VGATHERDPSZrm,
|
||||
VPGATHERDDZrm)>;
|
||||
|
||||
def SKXWriteResGroup246 : SchedWriteRes<[SKXPort0,SKXPort015]> {
|
||||
let Latency = 31;
|
||||
|
|
Loading…
Reference in New Issue