https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97939
--- Comment #8 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- But note that there is no issue with -fsanitize=undefined on return i - (-4096); So the cause is the transformation of i + 4096 to i - (-4096).