[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