https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119196
--- Comment #3 from Victor Do Nascimento <victorldn at gcc dot gnu.org> --- The s/INTEGRAL_TYPE_P/ANY_INTEGRAL_TYPE_P/ change gets us part of the way there. We also need to make sure that in our call to `generic_simplify' we're passing in the original vector comparisons (e.g. *x < *y) and not the VEC_COND_EXPRs that the vector comparisons get embedded into ((e.g. VEC_COND_EXPR < *x>*y, {-1,-1,-1,-1}, {0,0,0,0} >). That way, generic_simplify can use its existing machinery to reason about the simplification. Then, once the simplification is made by `generic_simplify' is made, we can create a new VEC_COND_EXPR with the folded comparison (or return the zero vector for a case like `*x < *y & *x > *y;'). We have one of our graduates currently working on this and hope to get a patch out in the near future.