vwredsum

Earl Killian

If the vector operand to an integer vwredsum is long enough, 2*SEW will not be large enough to contain the result. I would interpret the spec to suggest that the low 2*SEW bits are written to the destination (there is not mention of saturation), but it seems like it deserves a mention, if only to encourage software to think about precision and vector length.

Bruce Hoult

As a 2*SEW scalar from element 0 of vs1 is added to the sum of the various SEW elements in vs2, even a vector of length 1 can cause overflow.

On Fri, Sep 17, 2021 at 12:43 PM Earl Killian <earl.killian@...> wrote:
If the vector operand to an integer vwredsum is long enough, 2*SEW will not be large enough to contain the result. I would interpret the spec to suggest that the low 2*SEW bits are written to the destination (there is not mention of saturation), but it seems like it deserves a mention, if only to encourage software to think about precision and vector length.

Krste Asanovic

Added explicit statement to spec for this case. There was a wrap-around
statement for single-width but not for widening reductions.

Krste

On Fri, 17 Sep 2021 14:22:07 +1200, "Bruce Hoult" <bruce@...> said:
| As a 2*SEW scalar from element 0 of vs1 is added to the sum of the various SEW
| elements in vs2, even a vector of length 1 can cause overflow.

| On Fri, Sep 17, 2021 at 12:43 PM Earl Killian <earl.killian@...>
| wrote:

| If the vector operand to an integer vwredsum is long enough, 2*SEW will
| not be large enough to contain the result. I would interpret the spec to
| suggest that the low 2*SEW bits are written to the destination (there is
| not mention of saturation), but it seems like it deserves a mention, if
| only to encourage software to think about precision and vector length.

|

 1 - 3 of 3