[llvm-dev] RFC: Promoting experimental reduction intrinsics to first class intrinsics

Nikita Popov via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 8 09:54:52 PDT 2020


On Wed, Apr 8, 2020 at 6:59 AM Amara Emerson via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi,
>
> It’s been a few years now since I added some intrinsics for doing vector
> reductions. We’ve been using them exclusively on AArch64, and I’ve seen
> some traffic a while ago on list for other targets too. Sander did some
> work last year to refine the semantics after some discussion.
>
> Are we at the point where we can drop the “experimental” from the name?
> IMO all target should begin to transition to using these as the preferred
> representation for reductions. But for now, I’m only proposing the naming
> change.
>

There's still a couple of open issues that I'm aware of:

1. fmin/fmax reductions without nnan flag do not work. IR expansion code
assumes that these always use FMF. It's also under-documented what their
exact behavior is, though I assume it should match llvm.minnum/llvm.maxnum
semantics to be most useful.

2. SDAG legalization support for float softening is missing.

3. SDAG legalization for ordered reductions is missing.

I think point 1 is the only real blocker here, the rest can be avoided by
force-expanding these cases in IR.

Regards,
Nikita
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200408/2d4744fd/attachment.html>


More information about the llvm-dev mailing list