https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89670
--- Comment #2 from Jörn Engel <joern at purestorage dot com> --- The input is 32. Does the "undefined-if-zero" thing give gcc license to remove code depending on the output? If it does, why is the code only removed when comparing against 31/32, not when comparing against 30?