[PATCH] D117763: [AArch64][GlobalISel] CodeGen for Armv8.8/9.3 MOPS
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 27 05:03:36 PST 2022
dmgreen added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp:945
+ assert(STI->hasMOPS());
+ assert(STI->hasMTE() || Opcode != AArch64::MOPSMemorySetTaggingPseudo);
+
----------------
tyb0807 wrote:
> dmgreen wrote:
> > I think this assert is still valid, isn't it?
> No, please see Sjoerd's comment https://reviews.llvm.org/D117753#inline-1126864, backed by the specification https://github.com/ARM-software/acle/blob/next-release/main/acle.md#memcpy-family-of-memory-operations-standarization-instructions---mops
This can't just generate instructions for an architecture that is not enabled. That is an error (even if it doesn't currently give an error - there should be a verifier check for it, but it only works in certain situations at the moment). It doesn't matter a lot if the assert is there or not, but it should be invalid to get here without the architecture extension (from clang).
The spec sounds wrong to me - it doesn't make much sense to define an intrinsic that can't be used under the current architecture.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117763/new/
https://reviews.llvm.org/D117763
More information about the llvm-commits
mailing list