DirectXMath icon indicating copy to clipboard operation
DirectXMath copied to clipboard

The clang/LLVM returns bad results for specific code optimizations

Open shinjich opened this issue 4 years ago • 0 comments

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.

shinjich avatar Jul 11 '21 15:07 shinjich