Dynasm is an assembler so that is even worse than writing LLVM IR - you have to write assembly code for each architecture you wish to support.