[PATCH] D93860: [SLP] delete unused pairwise reduction option

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 30 08:35:24 PST 2020


spatel added a comment.

In D93860#2475145 <https://reviews.llvm.org/D93860#2475145>, @spatel wrote:

> SLP requires `fast` as a pre-condition before matching a reduction (although I'm not sure if that implementation is completely sound), so the hard-coded logic:
>
>   Unsafe.setFast();
>   Builder.setFastMathFlags(Unsafe);
>
> ...is theoretically safe here. But yes, that is one bug I am hoping to fix. LoopVectorizer appears to have different bug(s).

I was wrong - I thought we had test coverage for this, but I don't see it now. Here is an example of SLP miscompile: 3567908d8ceb <https://reviews.llvm.org/rG3567908d8ceb95afe50961c7a953c202131235c5>
The transformed code with reduction assumes things like `ninf` and `nnan`, but those do not exist in the original code.


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

https://reviews.llvm.org/D93860



More information about the llvm-commits mailing list