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

--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #11)
> We still get the bogus IR but we don't ICE any more:
>   v4qi c;
>   uv4qi d;
> 
>   c = {a, a, a, a};
>   d = {a, a, a, a};
>   D.2757 = c != d;
>   D.2758 = VEC_COND_EXPR <D.2757, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
>   D.2759 = VIEW_CONVERT_EXPR<v4qi>(D.2758);
> 
> Also VEC_COND_EXPR really should not be there.

What's bogus with the IR?  The VIEW_CONVERT need not be there as it can
be combined with the VEC_COND_EXPR RHSs.  We can't drop the VEC_COND_EXPR
as c != d results in a vector bool while we want a v4qi.

Reply via email to