One of the main BLAS implementations (where lots of numerical computation spends 99% of its time) is OpenBLAs, hand-crafted assembly per CPU. Main competitor is Intel MKL, closed source.
Even if you could interpret that code, your JIT-ing is not going to create exactly the same assembly and will thus perform worse. You can very easily get a C implementation that you can interpret easily but at least as output by a C compiler, that performance is nowhere near where you want to be.
(I realize this is not a problem though, just have the JIT call the libraries, as long as the wrapper can be interpreted you are good.)
This is more difficult than you might think. LLVM IR more like a family of closely related, but poorly-specified languages, than a language of its own.
There is an interpreter in the LLVM codebase, but this is essentially only possible because it is part of the codebase and so tracks the rest of the project very closely.