[PATCH] D95690: [LoopVectorize] improve IR fast-math-flags propagation in reductions

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 1 09:05:24 PST 2021


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

> There's still a bug in ExpandReductions, and we do need to fix that - it's preventing expected vectorization from SLP as noted here:
> https://llvm.org/PR23116

Why does ISel not lower it more optimally? ExpandReductions never seemed like it should be needed to me.

> But yes, since we are still requiring NoNan here, I think we are safe (this patch can't make things worse unless I've missed some loophole in lowering).

Yeah, this seems more correct. LGTM :)

> There was also this example:
> https://llvm.org/PR43574
> ...but we either solved that one or made it invisible with the changes so far. I need to investigate the IR after each pass.

I thought that we haven't been able to vectorizer min/max reductions in the loop vectorizer for a while as the minnum/maxnum intrinsics do not get matched - it's still expecting a icmp/select in the reduction recognition code.


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

https://reviews.llvm.org/D95690



More information about the llvm-commits mailing list