https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83653
--- Comment #7 from Matthew Wilcox <matthew at wil dot cx> --- OK, so how should we write this function/macro to accomplish what we want? And the requirement is "If the argument is one of these eight special constants, use this special instruction, otherwise call this function". Even if the argument happens to be one of the eight special values at runtime, we should still call the function, because it's not worth doing runtime checks; we only want a compile-time optimisation. And it's worth the compile-time optimisation because adding constant 1/-1 is really, really common.