Sadly, the translation from SPIR-V to system-dependent machine code can still be buggy. Although hopefully most of the optimisation will take place at the SPIR-V level, which, as I understand it, is pretty similar to LLVM. That should enable reuse of thoroughly debugged code, instead of each vendor maintaining their own full compiler.
> Sadly, the translation from SPIR-V to system-dependent machine code can still be buggy.
This is true, but it eleminates at least one one the points where things can go wrong. Additionally this approach has the advantage that developers (with some practice) can read the SPIR-V "assembly" code to make sure it is correct. With existing solutions it was already hard to get and interprete the intermediate code to find out whether the problem is in the frontend or backend.