https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107546
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #5) > typedef signed char v16qs __attribute__((vector_size(16))); > auto bar(v16qs x) { return x < 48; } > > clang does expand it as 48 gt x. Gcc however does its usual change to x <= > 47, which it then tries to expand as ~(x > 47). I guess the expansion for x > <= y could be tweaked in the case where one argument is constant to undo > what was done earlier in the pipeline and expand as 48 > x. I was going to suggest that ... Or maybe that could be done in isel.