Tested only Ubuntu 20 with Python3, Clang and Rust.
Ubuntu clang version 11.0.0-2~ubuntu20.04.1 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin
rustc 1.51.0 (2fd73fabe 2021-03-23)
Tweak constants in compile.py (you need specify your CPU, linker, llvm tools, etc)
And just run python3 compile.py
It generated LLVM IR code for dot product dynamic library in Rust.
Then adds some faster and imprecise (but still SAFE and without UB!) flags to fadd
and fmul
instructions in one of implementations.
Runs LLVM optimizations then link it to dynamic library.
Then builds and run Rust project to show difference between IEEE-754 compilant and fast arithmetics.
Running IEEE-754 floating math
Elapsed 155 microseconds
Result: 2666686666700000
Running fast floating math
Elapsed 104 microseconds
Result: 2666686666700000