[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