http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61114

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Tejas Belagod from comment #5)
> So, does that mean the folded value 120 is in the wrong place? The fix that
> I'm testing swaps the first and last elements of the const vector {120, 0,
> 0, 0}.
> 
> PS: Sorry, my statement "The final folded value is extracted from the LSB
> which are bits 32:96 on BE systems" should have read "The final folded value
> is extracted from the LSB which are bits 96..127 on BE systems" if that
> caused confusion.

But that's the bug.  The final value should _always_ be extracted from
0..31.  That is, the folding is perfectly ok given the description of
REDUC_PLUS_EXPR.

So - it looks like the target does something wrong for expansion of
REDUC_PLUS_EXPR.

Reply via email to