summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/AArch64/AArch64SchedM1.td20
1 files changed, 9 insertions, 11 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SchedM1.td b/llvm/lib/Target/AArch64/AArch64SchedM1.td
index 6c86fcdd29b..55a192b8978 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedM1.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedM1.td
@@ -99,6 +99,7 @@ def M1WriteLC : SchedWriteRes<[M1UnitA,
def M1WriteLD : SchedWriteRes<[M1UnitA,
M1UnitL,
M1UnitL]> { let Latency = 5; }
+def M1WriteLH : SchedWriteRes<[]> { let Latency = 5; }
def M1WriteLX : SchedWriteVariant<[SchedVar<M1ShiftLeftFastPred, [M1WriteL5]>,
SchedVar<NoSchedPred, [M1WriteA1,
M1WriteL5]>]>;
@@ -115,9 +116,6 @@ def M1WriteSB : SchedWriteRes<[M1UnitS,
M1UnitA]> { let Latency = 2; }
def M1WriteSC : SchedWriteRes<[M1UnitS,
M1UnitFST,
- M1UnitA]> { let Latency = 1; }
-def M1WriteSD : SchedWriteRes<[M1UnitS,
- M1UnitFST,
M1UnitS,
M1UnitFST,
M1UnitA]> { let Latency = 1; }
@@ -166,7 +164,7 @@ def : SchedAlias<ReadAdrBase, M1ReadAdrBase>;
// Load instructions.
def : WriteRes<WriteLD, [M1UnitL]> { let Latency = 4; }
-def : WriteRes<WriteLDHi, [M1UnitALU]> { let Latency = 4; }
+def : WriteRes<WriteLDHi, []> { let Latency = 4; }
def : SchedAlias<WriteLDIdx, M1WriteLX>;
// Store instructions.
@@ -188,7 +186,7 @@ def : WriteRes<WriteFImm, [M1UnitNALU]> { let Latency = 1; }
def : WriteRes<WriteFCopy, [M1UnitS]> { let Latency = 4; }
// FP load instructions.
-def : WriteRes<WriteVLD, [M1UnitL]> { let Latency = 5; }
+def : WriteRes<WriteVLD, [M1UnitL]> { let Latency = 5; }
// FP store instructions.
def : WriteRes<WriteVST, [M1UnitS,
@@ -442,15 +440,15 @@ def : InstRW<[M1WriteLX,
def : InstRW<[M1WriteLC,
ReadAdrBase], (instregex "^LDRQro[WX]")>;
def : InstRW<[WriteVLD,
- WriteLDHi], (instregex "^LDN?P[DS]i")>;
+ M1WriteLH], (instregex "^LDN?P[DS]i")>;
def : InstRW<[M1WriteLB,
- WriteLDHi], (instregex "^LDN?PQi")>;
+ M1WriteLH], (instregex "^LDN?PQi")>;
def : InstRW<[M1WriteLC,
- WriteLDHi,
+ M1WriteLH,
WriteAdr,
ReadAdrBase], (instregex "^LDP[DS](post|pre)")>;
def : InstRW<[M1WriteLD,
- WriteLDHi,
+ M1WriteLH,
WriteAdr,
ReadAdrBase], (instregex "^LDPQ(post|pre)")>;
@@ -465,10 +463,10 @@ def : InstRW<[M1WriteSY,
def : InstRW<[M1WriteSB,
ReadAdrBase], (instregex "^STRQro[WX]")>;
def : InstRW<[WriteVST], (instregex "^STN?P[DSQ]i")>;
-def : InstRW<[M1WriteSC,
+def : InstRW<[WriteVST,
WriteAdr,
ReadAdrBase], (instregex "^STP[DS](post|pre)")>;
-def : InstRW<[M1WriteSD,
+def : InstRW<[M1WriteSC,
WriteAdr,
ReadAdrBase], (instregex "^STPQ(post|pre)")>;
OpenPOWER on IntegriCloud