https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95903
--- Comment #4 from Markus F.X.J. Oberhumer <markus at oberhumer dot com> --- Yes, ilp32 might be a corner case. Still, clang-10 does create the expected code. See https://gcc.godbolt.org/z/aEokbX for clang-10 -target arm64_32-ios -O2 -fomit-frame-pointer -fwrapv and clang-10 -target arm64_32-ios -O2 -fomit-frame-pointer -fno-wrapv