[PATCH] D66295: [ARM] Sink add/mul(shufflevector(insertelement(...), ...), ...) for MVE instruction selection

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 3 02:41:22 PDT 2019


samparker accepted this revision.
samparker added a comment.
This revision is now accepted and ready to land.

LGTM. But please address comments before committing.



================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14331
   }
-  return false;
+  Instruction *Shuffle = (Instruction*) I->getOperand(Op);
+  // All uses of the shuffle should be sunk to avoid duplicating it across gpr and vector registers
----------------
But still use llvm style cast... = cast<Instruction>


================
Comment at: llvm/test/Transforms/CodeGenPrepare/ARM/sink-add-mul-shufflevector.ll:1
+; RUN: opt -mtriple=thumbv8.1m.main-arm-none-eabi -mattr=+mve.fp < %s -codegenprepare -S | FileCheck -check-prefix=CHECK %s
+
----------------
Since we have codegen support for vmla, could you also add an llc line here to test that vmlas are generated in loops.


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

https://reviews.llvm.org/D66295





More information about the llvm-commits mailing list