[PATCH] D66413: [ARM} Add support for MVE vmaxv

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 9 04:04:28 PDT 2019


samparker added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp:1064
     return false;
+  case Instruction::ICmp:
   case Instruction::Add:
----------------
samtebbs wrote:
> samparker wrote:
> > samtebbs wrote:
> > > samparker wrote:
> > > > Is this actually needed for codegen?
> > > It is, as otherwise the smax and umax vector reductions aren't generated and can't be selected on.
> > As in, the reductions get expanded somewhere and your tests would fail?
> Indeed, the tests fail and we get markedly worse codegen.
> 
> ```
> 65c65,70
> < 	vmaxv.u32	r2, q0
> ---
> > 	vmov.f32	s5, s3
> > 	vmax.u32	q0, q0, q1
> > 	vmov.32	r2, q0[1]
> > 	vdup.32	q1, r2
> > 	vmax.u32	q0, q0, q1
> > 	vmov	r2, s0
> ```
Ok, cheers. Then I expect Dave is right that the vmin could now get generated and will then assert because it can't be selected...?


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

https://reviews.llvm.org/D66413





More information about the llvm-commits mailing list