https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69282
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The vect generic issue is really gimple_buildN should be using STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS. Note this code should assuming the fold_buildN would not produce a NOP_EXPR (cast) from one type to another; that is it did not expect a == 0? 0 : 1 be convert into (int)a. Note also the produced code is garbage as we go from vectorized code to non vectorized code. I am still looking into a generic fix for VEC_COND_EXPR issue.