Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions clang/docs/LanguageExtensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -745,12 +745,12 @@ Let ``VT`` be a vector type and ``ET`` the element type of ``VT``.
======================================= ====================================================================== ==================================
Name Operation Supported element types
======================================= ====================================================================== ==================================
ET __builtin_reduce_max(VT a) return x or y, whichever is larger; If exactly one argument is integer and floating point types
a NaN, return the other argument. If both arguments are NaNs,
fmax() return a NaN.
ET __builtin_reduce_min(VT a) return x or y, whichever is smaller; If exactly one argument integer and floating point types
is a NaN, return the other argument. If both arguments are
NaNs, fmax() return a NaN.
ET __builtin_reduce_max(VT a) return the largest element of the vector. If the element type is integer and floating point types
floating point, this function has the same comparison semantics as
``__builtin_reduce_maximum``.
ET __builtin_reduce_min(VT a) return the smallest element of the vector. If the element type is integer and floating point types
floating point, this function has the same comparison semantics as
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the implementation, this is going to use reduce_fmax intrinsic, which is not the same as reduce_maximum

I think this builtin trying to support floating point is an anti-feature, and if it has to, it should have matched minimum/maximum. But that's not what the implementation is doing

This comment was marked as outdated.

This comment was marked as outdated.

``__builtin_reduce_minimum``.
ET __builtin_reduce_add(VT a) \+ integer types
ET __builtin_reduce_mul(VT a) \* integer types
ET __builtin_reduce_and(VT a) & integer types
Expand Down
Loading