https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101024
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> --- A few testcases that have not been added to the testsuite yet. Note it takes f1 to phiopt2 to optimize that because there is an extra statement left behind because match does not deal with `(signed)a < 0` yet. ``` unsigned long long f2 (unsigned long long x) { if (x < 0x8000000000000000ULL) x = 0x8000000000000000ULL; else { if (x >= 0x8000000000000023ULL) x = 0x8000000000000023ULL; } return x; } unsigned long long f1 (unsigned long long x) { if (x >= 100) { if (x >= 0x8000000000000000ULL) x = 0x8000000000000000ULL; } else x = 100; return x; } ```