You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The clang/LLVM + /Ox + /fp:fast + XMVectorRound built for SSE/SSE2 generated the bad results. XMVectorRound are used in trigonometric functions such as XMVectorSinCos, etc.
The issue here is that #pragma float_control was not in place for clang as it is for MSVC, but more importantly this pragma on clang doesn't work correctly for SSE instrinsics :(
The clang/LLVM + /Ox + /fp:fast + XMVectorRound built for SSE/SSE2 generated the bad results. XMVectorRound are used in trigonometric functions such as XMVectorSinCos, etc.
Repro code:
https://github.com/shinjich/directxmathtest/tree/master/VerifyRounding
The reproduction code compares the results of standard library, original XMVectorSinCos and modified version of XMVectorSinCos.
Results compiled and executed with..
/Ox /fp:fast (Bad results)
https://github.com/shinjich/directxmathtest/blob/master/VerifyRounding/_Result_fp_fast.txt
/Ox /fp:precise (Good results)
https://github.com/shinjich/directxmathtest/blob/master/VerifyRounding/_Result_fp_precise.txt
/Ox /fp:fast + SVML (Good results)
https://github.com/shinjich/directxmathtest/blob/master/VerifyRounding/_Result_fp_fast_SVML.txt
This issue was not seen with VC.
The text was updated successfully, but these errors were encountered: