https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110931
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is one that has always failed due to a similar issue where the inner cast was removed: ``` void foo(void); int l=1000; int main(void) { short t = l; int t1 = t; if (t1 == 0) { signed char b = t1; if (b != 1) __builtin_unreachable(); foo(); } } ```