https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83513
--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> --- > (btw it appears that either the comment or the sense of the last tiebreaker > is inverted) I have to take that back, I was confused by the unusual tmp vs. tmp2 order: sel_rank_for_schedule (const void *x, const void *y) { expr_t tmp = *(const expr_t *) y; expr_t tmp2 = *(const expr_t *) x; ... and the ordering sel_rank_for_schedule seeks to produce is "worse insns first, better last". The rest of the previous comment still stands.