Skip to content

Commit 69d4011

Browse files
committed
Update Cyclone scheduling model LD behavior
1 parent 36fc378 commit 69d4011

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

llvm/lib/Target/AArch64/AArch64SchedCyclone.td

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def : WriteRes<WriteST, [CyUnitLS]> {
242242
// Rt latency is latency WriteIS + WriteLD.
243243
// EXAMPLE: LDR Xn, Xm [, lsl 3]
244244
def CyWriteLDIdx : SchedWriteVariant<[
245-
SchedVar<ScaledIdxPred, [WriteIS, WriteLD]>, // Load from scaled register.
245+
SchedVar<ScaledIdxPred, [WriteLD]>, // Load from scaled register.
246246
SchedVar<NoSchedPred, [WriteLD]>]>; // Load from register offset.
247247
def : SchedAlias<WriteLDIdx, CyWriteLDIdx>; // Map AArch64->Cyclone type.
248248

@@ -635,7 +635,7 @@ def : WriteRes<WriteVST, [CyUnitLS]> {
635635
// same latency, this is acceptable.
636636

637637
// Vd is read 5 cycles after issuing the vector load.
638-
def : ReadAdvance<ReadVLD, 5>;
638+
def : ReadAdvance<ReadVLD, 4>;
639639

640640
def : InstRW<[WriteVLD],
641641
(instregex "LD1Onev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
@@ -670,13 +670,10 @@ def : InstRW<[WriteVLD, WriteVLD, WriteVLD, WriteVLD],
670670
def : InstRW<[WriteVLD, WriteAdr, WriteVLD, WriteVLD, WriteVLD],
671671
(instregex "LD1Fourv(16b|8h|4s|2d)_POST")>;
672672

673-
def : InstRW<[WriteVLDShuffle, ReadVLD],
674-
(instregex "LD1i(8|16|32)$")>;
675-
def : InstRW<[WriteVLDShuffle, ReadVLD, WriteAdr],
676-
(instregex "LD1i(8|16|32)_POST")>;
677-
678-
def : InstRW<[WriteVLDShuffle, ReadVLD], (instrs LD1i64)>;
679-
def : InstRW<[WriteVLDShuffle, ReadVLD, WriteAdr],(instrs LD1i64_POST)>;
673+
def : InstRW<[ReadVLD],
674+
(instregex "LD1i(8|16|32|64)$")>;
675+
def : InstRW<[ReadVLD],
676+
(instregex "LD1i(8|16|32|64)_POST")>;
680677

681678
def : InstRW<[WriteVLDShuffle],
682679
(instregex "LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;

0 commit comments

Comments
 (0)