Attached patch, committed as revision 226924, adjusts slightly the front-end’s handling of floating-point built-ins, notably making BUILT_IN_SIGNBIT type-generic. This generates better code for IEEE_IS_NEGATIVE and IEEE_COPY_SIGN functions, through direct expansion by the compiler rather than libquadmath function call signbitq().
Regtested on x86_64-apple-darwin14, covered by existing testcases in gfortran.dg/ieee/. FX PS: I figured, since few gfortran maintainers appear to be around right now, and I’m probably the one who knows that area best, I’d commit it directly rather than ask for review, even though it’s not a trivial patch.
fp_builtins.diff
Description: Binary data