The previous patch https://reviews.llvm.org/D102861 suppressed ffp-contract but that was wrong, the change should be to set ffp-contract=fast.
When I applied the clang patch, the same tests failed again, this time due to execution_time.
Also the previous patch limited the changes to x86, but they are also needed broadly on all architectures so I changed that too in this revision.
I could revert the previous patch and roll them both into a single patch, what do you think?