[PATCH] D77872: [AArch32] Armv8.6-a Matrix Mult Assembly + Intrinsics
Luke Geeson via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 25 06:51:57 PDT 2020
LukeGeeson marked an inline comment as done.
LukeGeeson added inline comments.
================
Comment at: llvm/lib/Target/ARM/ARMInstrNEON.td:4846
+ VDOT<op6, op4, op23, RegTy, Asm, AsmTy, AccumTy, InputTy, OpNode> {
+ let hasNoSchedulingInfo = 1;
+
----------------
dmgreen wrote:
> I don't think that hasNoSchedulingInfo is necessarily the best way to handle this. That flag is intended for instructions that will never be scheduled, like Pseudo instructions.
>
> If you are running into "Complete Schedule" problems, they might need HasMatMulInt8 added to the list of unsupported features instead.
Since there are no 8.6a cpus in llvm that support this extension, the default behaviour is to use Cortex-A57 scheduling - this also has no notion of 8.6a matmul.
This falls back to SchedMachineModel in `llvm/lib/Target/ARM/ARMScheduleA57.td` and in particular UnsupportedFeatures would be a candidate place to put unsupported features like matmul. I took issue with putting all new extensions here because there should be a separation of concerns between a particular scheduling model, and supporting new behaviour (which could go in a generic catch all location that might be slightly more informative ).
Did you have something in particular in mind?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77872/new/
https://reviews.llvm.org/D77872
More information about the cfe-commits
mailing list