https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85162
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- If you believe this is incorrect, you should be able to extend the testcase with an assert somewhere showing that the result is wrong. For vectors, as documented, comparisons return a vector of 0 (false) and -1 (true). Those values are both <= 0, so it seems good if the compiler optimized check1 to false. check2 is about scalars, where comparison returns 1 or 0.