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.