Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Normalize NaNs in to_ieee754_32 and to_ieee754_64
Summary: We noticed a case in the fuzzer where different code paths or builds (specifically ASAN) generated NaNs with different binary representations before being fed to either of the aforementioned UDFs. To be more specific, with ASAN builds we noticed that the exact same input when added returned different results in different iterations. For example, NaN + (-NaN) sometimes returned NaN and sometimes -NAN. When this was fed into to_ieee754_32, the binary representation came out different between fuzzer runs and the results mismatched. Therefore, this change ensures that the output of to_ieee754_32/64 for NaNs is consistent across different binary representations so that to_ieee754_32(NaN) = to_ieee754_32(NaN) and NaN=NaN remain true (in velox and presto all NaNs are considered equal). Differential Revision: D65238915
- Loading branch information