[PATCH] D76766: [ARM][LowOverheadLoops] DoubleWidthResult instructions canGenerateZeros

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 27 07:03:21 PDT 2020


samparker marked 2 inline comments as done.
samparker added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:530
+  // Check for instructions which can write into a larger element size.
+  const MCInstrDesc &MCID = MI.getDesc();
+  uint64_t Flags = MCID.TSFlags;
----------------
SjoerdMeijer wrote:
> nit: this is absolutely fine of course, but you do have a little helper function just below this function for the similar RetainsPreviousHalfElement MI description. Perhaps a bit more consistent to add this as a helper too, and that would nicely cluster these helpers.
Yeah, I had the same thought.


================
Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir:754
 
+  define hidden i32 @illegal_vmull_non_zero(i16* %x, i16* %y, i16* %z, i32 %n) {
+  entry:
----------------
SjoerdMeijer wrote:
> Do we need to test some other opcodes too that have been marked as DoubleWidth? Like MVE_VSHLL, VMOVL, VQDMULL? Or is this perhaps already tested elsewhere?
I want to use the unit test to cover the opcodes, and this test was to check that the logic in the pass was reading the flags correctly.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76766





More information about the llvm-commits mailing list