https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109502

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> SLP transforms:
> 
>   g.0_1 = g;
>   _2 = g.0_1 == 0;
>   a_7 = (unsigned int) _2;
>   _3 = a_7 % 6;
>   _4 = _3 == 0;
>   _5 = (unsigned int) _4;
>   a_8 = _5 + a_7;
> 
> To:
> 
>   g.0_1 = g;
>   _2 = g.0_1 == 0;
>   a_7 = (unsigned int) _2;
>   _3 = a_7 % 6;
>   _15 = {_3, g.0_1};
>   mask__4.4_16 = { 0, 0 } == _15;
>   vect__5.5_19 = VIEW_CONVERT_EXPR<vector(2) unsigned int>(mask__4.4_16);
>   _17 = BIT_FIELD_REF <mask__4.4_16, 32, 0>;
>   _18 = (bool) _17;
>   _4 = _3 == 0;
>   _5 = (unsigned int) _18;
>   _20 = .REDUC_PLUS (vect__5.5_19);
>   a_8 = _20;
> 

If anything there is a missing, a negative after the
reduc_plus (or before) when it translates the bools comparisons into vector
comparisons.

Reply via email to