From 551af44e31afc4dd0dfab8cb254192d961f36ad1 Mon Sep 17 00:00:00 2001 From: Evandro Menezes Date: Tue, 12 Apr 2016 22:42:36 +0000 Subject: [PATCH] [AArch64] Fuse AES{D,E}/AESMC for Exynos M1. (NFC) llvm-svn: 266144 --- llvm/lib/Target/AArch64/AArch64SchedM1.td | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/AArch64/AArch64SchedM1.td b/llvm/lib/Target/AArch64/AArch64SchedM1.td index 1951c0a15162..f2bada2f764e 100644 --- a/llvm/lib/Target/AArch64/AArch64SchedM1.td +++ b/llvm/lib/Target/AArch64/AArch64SchedM1.td @@ -347,7 +347,10 @@ def : InstRW<[M1WriteNALU1], (instregex "^ZIP[12]v")>; // ASIMD store instructions. // Cryptography instructions. -def : InstRW<[M1WriteNCRYPT1], (instregex "^AES")>; +def M1WriteAES : SchedWriteRes<[M1UnitNCRYPT]> { let Latency = 1; } +def M1ReadAES : SchedReadAdvance<1, [M1WriteAES]>; +def : InstRW<[M1WriteAES, M1ReadAES], (instregex "^AES")>; + def : InstRW<[M1WriteNCRYPT1], (instregex "^PMUL")>; def : InstRW<[M1WriteNCRYPT1], (instregex "^SHA1(H|SU)")>; def : InstRW<[M1WriteNCRYPT5], (instregex "^SHA1[CMP]")>;