A miscompile with -0.0 is shown in:
https://bugs.llvm.org/show_bug.cgi?id=46627
This is because maxnum(-0.0, +0.0) does not specify a fixed result:
http://llvm.org/docs/LangRef.html#llvm-maxnum-intrinsic
So we need to tighten the constraints for when it is ok to say the result of maxnum is positive (including +0.0).
Can you just pass false for "SignBitOnly", instead of doing a bunch of extra calls?