19:05
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.
19:50
Then after much looking, turns out __normSubnormalF32Sig()
was returning
values in the wrong order, so this has been fixed! Yay!