LLVM bitcode is not that portable in reality. Just like Plan9 assembly intermediary bitcode files are pretty much single architecture, due to containing lots and lots of low-level assumptions about the target architecture, not to mention possible incompatibilities in extended intrinsics (for example for vector units).