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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #6)
> Created attachment 55472 [details]
> Fix veclowering types
> 
> So the problem is veclowering should have just use boolean_type_node here
> for the comparison.
> 
> There is another type issue when dealing with not a comparison and not 
> scalar bitmask which fix is included here.
> 
> Still need to test it.

I think this gets the case wrong where lowering splits a wide vector into
smaller vectors.  I think 'cond_type' is wrong in this case already,
but unconditionally using boolean_type_node looks wrong as well.
In the small vector case the code also uses COND_EXPR instead of
VEC_COND_EXPR.  Hmm, maybe we don't support big to small vector split
here at all ... in that case the patch looks good to me.

Reply via email to