summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/AArch64/AArch64SchedExynosM3.td8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td b/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td
index 452011573bf..6fe545d80ca 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td
@@ -287,6 +287,9 @@ def M3WriteNEOND : SchedWriteRes<[M3UnitNSHF,
def M3WriteNEONH : SchedWriteRes<[M3UnitNALU,
M3UnitS]> { let Latency = 5;
let NumMicroOps = 2; }
+def M3WriteNEONI : SchedWriteRes<[M3UnitNSHF,
+ M3UnitS]> { let Latency = 5;
+ let NumMicroOps = 2; }
def M3WriteNEONV : SchedWriteRes<[M3UnitFDIV,
M3UnitFDIV]> { let Latency = 7;
let NumMicroOps = 1;
@@ -527,8 +530,9 @@ def : InstRW<[M3WriteFCVT4], (instregex "^[FU](RECP|RSQRT)Ev1")>;
def : InstRW<[M3WriteNMSC1], (instregex "^FRECPXv1")>;
def : InstRW<[M3WriteFMAC4,
M3ReadFMAC], (instregex "^F(RECP|RSQRT)S(16|32|64)")>;
-def : InstRW<[M3WriteNALU1], (instregex "^FMOV[WX][DS](High)?r")>;
-def : InstRW<[M3WriteNALU1], (instregex "^FMOV[DS][WX](High)?r")>;
+def : InstRW<[M3WriteNALU1], (instregex "^FMOV[WX][DS]r")>;
+def : InstRW<[M3WriteNALU1], (instregex "^FMOV[DS][WX]r")>;
+def : InstRW<[M3WriteNEONI], (instregex "^FMOV(DX|XD)Highr")>;
// FP load instructions.
def : InstRW<[WriteVLD], (instregex "^LDR[DSQ]l")>;
OpenPOWER on IntegriCloud