[PATCH] D117763: [AArch64][GlobalISel] CodeGen for Armv8.8/9.3 MOPS

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 26 06:47:22 PST 2022


dmgreen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3429
     return selectReduction(I, MRI);
+  case TargetOpcode::G_BZERO:
+  case TargetOpcode::G_MEMCPY:
----------------
Why does this have a case for G_BZERO if selectMOPS asserts that opcode != G_BZERO?


================
Comment at: llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp:94
   case TargetOpcode::G_MEMSET: {
+    if (ST.hasMOPS())
+      return false;
----------------
This one too? It may want to prevent turning it into a bzero in this case though.


================
Comment at: llvm/test/CodeGen/AArch64/aarch64-mops-mte.ll:3
+
+; RUN: llc %s -o - -mtriple=aarch64-arm-none-eabi -O0 -global-isel=1 -global-isel-abort=1 -mattr=+mops,+mte  | FileCheck %s --check-prefix=GISel
+
----------------
Can you add a run line without -O0, as they run through different code. Using --check-prefixes can help if they have identical output.


================
Comment at: llvm/unittests/Target/AArch64/InstSizes.cpp:25
 
-  return std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine*>(
-      TheTarget->createTargetMachine(TT, CPU, FS, TargetOptions(), None, None,
-                                     CodeGenOpt::Default)));
+  return std::unique_ptr<LLVMTargetMachine>(
+      static_cast<LLVMTargetMachine *>(TheTarget->createTargetMachine(
----------------
All of this seems unrelated?


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