So the floating point values are wrong and these are the ten bad ones:
fxmaxmin ! string:0x34ffffff string:0x7f800000 fxminmax ! string:0x34ffffff string:0x7f800000 fxminmin ! string:0x00000000 string:0x7f800000 fxminneg ! string:0x80000001 string:0xff800000 fxminnrm ! string:0x00000000 string:0x7f800000 fxminone ! string:0x00000001 string:0x7f800000 fxnegmin ! string:0x80000001 string:0xff800000 fxnrmmin ! string:0x00000000 string:0x7f800000 fxonemin ! string:0x00000001 string:0x7f800000
After running a first run in fixing I get these 6 bad ones:
fxmaxmin ! string:0x34ffffff string:0x407fffe9 fxminmax ! string:0x34ffffff string:0x417fffe8 fxminneg ! string:0x80000001 string:0x80fffff5 fxminone ! string:0x00000001 string:0x00fffff5 fxnegmin ! string:0x80000001 string:0x807ffff5 fxonemin ! string:0x00000001 string:0x007ffff5
This is with exponent capping that at least gets a bit closer, but it feels like the fraction is a bit off still.
Then after much looking, turns out
__normSubnormalF32Sig() was returning
values in the wrong order, so this has been fixed! Yay!