[PATCH] D69845: [ARM][MVE] canTailPredicateLoop

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 7 23:49:02 PST 2019


samparker added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp:1010
+  if (isa<TruncInst>(&I) || isa<SExtInst>(&I) || isa<ZExtInst>(&I)) {
+    if (isa<LoadInst>(I.getOperand(0)) || isa<StoreInst>(I.getOperand(0))) {
+      LLVM_DEBUG(dbgs() << "not allowing instruction: "; I.dump());
----------------
You need to check the user of the load, not it's operand. Also the logic is wrong here, we need to accept extending loads and truncating stores.


================
Comment at: llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp:1050
+      // TODO: the float types
+      if (T->isHalfTy() || T->isFloatTy() || T->isDoubleTy())
+        return false;
----------------
What is the complication of supporting half and float now?


================
Comment at: llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp:1064
+        // keep it simple for now.
+        if (FirstStride && (NextStride == 1 || NextStride == -1)) {
+          FirstStride = false;
----------------
You don't need FirstStride, the uninitialised Stride holds the same info.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69845/new/

https://reviews.llvm.org/D69845





More information about the llvm-commits mailing list