https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93353
--- Comment #9 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #7) > if (low_int >= 0x8000 - extra) > is not true and 0x7fffffff - -1 is 0x80000000 (with UB on the compiler side). These are HWIs, so there is no UB. > But also > && ((unsigned HOST_WIDE_INT) (INTVAL (XEXP (x, 1)) + 0x8000) > can invoke UB in the compiler, shouldn't it be just > && ((UINTVAL (XEXP (x, 1)) + 0x8000) > ? That sounds right, yes.