https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117363
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > I think I can write a gimple testcase ... ``` unsigned __GIMPLE () test2 (int n) { unsigned t; _Bool _3; t_2 = (unsigned)n_1(D); t_3 = t_2 - 1u; n_5 = (signed) t_3; _3 = n_1(D) != 0; n_6 = _3 ? n_5 : 0; return n_6; } ``` Note I will also fix up the nop_convert's too. they should be nop_convert1 and nop_convert2. But then the minus in this case should be in inner type rather than the outter for overflow reasons.