Hi Jocelyn and welcome to the LLVM community. I'm really excited about this approach to testing the assembler. I've just got a few comments for now.
If I understand correctly, with the approach of verifying the GNU objdump produces the exact same ASM string, you're committing yourself to handling all of the aliases manually in proto_to_asm.cpp (as you do with neg) or else using -riscv-no-aliases and constraining the fuzzer to never generate aliased instructions. If approaching this simply as randomised test generation I'd be tempted to use objdump to check that llvm-mc and gas produce the same encoded value for the randomly generated instruction. Do you think there's any scope for supporting such a mode? With the current strategy, presumably you'd be post-processing the objdumped .s so that you don't get a test failure for e.g. addi x1, x2, 0xa input vs addi x1, x2, 10 output?
I'm new to this infrastructure so apologies if I've misunderstood how things work and thanks for working on this issue.