[PATCH] D154756: [AArch64] Add scheduling model for Neoverse V1
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 11 04:16:30 PDT 2023
dmgreen added a comment.
Looks like another good addition. Thanks for working on this.
================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td:29
+
+ list<Predicate> UnsupportedFeatures = !listconcat(SMEUnsupported.F, [HasMTE]);
+}
----------------
Does it help to add SVE2 too?
================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td:58
+ V1UnitM0, V1UnitM1]>; // Integer units
+def V1UnitJ : ProcResGroup<[V1UnitS, V1UnitM0]>; // Integer 0-2 units
+def V1UnitM : ProcResGroup<[V1UnitM0, V1UnitM1]>; // Integer multicycle units
----------------
J is invented to model the instructions that set flags, that have a throughput of 3?
================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td:471
+// COPY
+def : SchedAlias<WriteI, V1Write_1c_1I>;
+def : InstRW<[WriteI], (instrs COPY)>;
----------------
These are mostly ALU instructions.
================
Comment at: llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s:22
+addp v0.8b, v0.8b, v0.8b
+and v0.8b, v0.8b, v0.8b
+bic v0.4h, #15, lsl #8
----------------
The Neoverse-V2 version of this file has some extra instructions like addv's, aes and some dup instructions, among others.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D154756/new/
https://reviews.llvm.org/D154756
More information about the llvm-commits
mailing list