@@ -242,7 +242,7 @@ def : WriteRes<WriteST, [CyUnitLS]> {
242242// Rt latency is latency WriteIS + WriteLD.
243243// EXAMPLE: LDR Xn, Xm [, lsl 3]
244244def 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.
247247def : 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
640640def : InstRW<[WriteVLD],
641641 (instregex "LD1Onev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
@@ -670,13 +670,10 @@ def : InstRW<[WriteVLD, WriteVLD, WriteVLD, WriteVLD],
670670def : 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
681678def : InstRW<[WriteVLDShuffle],
682679 (instregex "LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
0 commit comments