Currently the classify procedures checks for NaNs using the check `x != x`, which is always false for NaNs and therefore that case is never entered. Using `!(x == x)` will work on the other hand.
@@ -469,7 +469,7 @@ classify_f32 :: proc(x: f32) -> Float_Class {
return .Neg_Inf;
}
return .Inf;
- case x != x:
+ case !(x == x):
return .NaN;
@@ -493,7 +493,7 @@ classify_f64 :: proc(x: f64) -> Float_Class {
u := transmute(u64)x;