https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119030
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Looks like a pasto to me: --- gcc/gimple-fold.cc.jj 2025-02-24 00:06:26.018729158 +0100 +++ gcc/gimple-fold.cc 2025-02-27 16:27:28.843075160 +0100 @@ -8313,7 +8313,7 @@ fold_truth_andor_for_ifcombine (enum tre if (rsignbit) { wide_int sign = wi::mask (rl_bitsize - 1, true, rl_bitsize); - if (rsignbit > rl_bitsize && ll_unsignedp) + if (rsignbit > rl_bitsize && rl_unsignedp) sign <<= 1; if (!rl_and_mask.get_precision ()) rl_and_mask = sign; fixes that.