Macro rvv
Source macro_rules! rvv {
(add x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(mv x($rd:expr), x($rs1:expr)) => { ... };
(sub x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(neg x($rd:expr), x($rs2:expr)) => { ... };
(and x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(or x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(xor x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(sll x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(srl x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(sra x($rd:expr), x($rs1:expr), x($rs2:expr)) => { ... };
(addi x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(nop) => { ... };
(andi x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(ori x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(xori x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(not x($rd:expr), x($rs1:expr)) => { ... };
(slli x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(srli x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(srai x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(ld x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(sd x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(beq x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(bne x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(blt x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(ble x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(bgt x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(bge x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(bltu x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(bgeu x($rs1:expr), x($rs2:expr), $imm:expr) => { ... };
(jal x($rd:expr), $imm:expr) => { ... };
(j $imm:expr) => { ... };
(jalr x($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(jr x($rs1:expr)) => { ... };
(ret) => { ... };
(lui x($rd:expr), $imm:expr) => { ... };
(auipc x($rd:expr), $imm:expr) => { ... };
(fadd.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fadd.d f($rd:expr), f($rs1:expr), f($rs2:expr), $rm:expr) => { ... };
(fsub.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fmul.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fdiv.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fsqrt.d f($rd:expr), f($rs1:expr)) => { ... };
(fsgnj.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fsgnjn.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fsgnjx.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fmin.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fmax.d f($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(feq.d x($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(flt.d x($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fle.d x($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fgt.d x($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fge.d x($rd:expr), f($rs1:expr), f($rs2:expr)) => { ... };
(fld f($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(fsd f($rd:expr), x($rs1:expr), $imm:expr) => { ... };
(fabs.d f($rd:expr), f($rs1:expr)) => { ... };
(fmv.d f($rd:expr), f($rs1:expr)) => { ... };
(fneg.d f($rd:expr), f($rs1:expr)) => { ... };
(fcvt.w.d x($rd:expr), f($rs1:expr)) => { ... };
(fcvt.d.w f($rd:expr), x($rs1:expr)) => { ... };
(fcvt.l.d x($rd:expr), f($rs1:expr), $rm:expr) => { ... };
(fcvt.d.l f($rd:expr), x($rs1:expr)) => { ... };
(fmv.x.d x($rd:expr), f($rs1:expr)) => { ... };
(fmv.d.x f($rd:expr), x($rs1:expr)) => { ... };
(fmadd.d f($rd:expr), f($rs1:expr), f($rs2:expr), f($rs3:expr)) => { ... };
(fmsub.d f($rd:expr), f($rs1:expr), f($rs2:expr), f($rs3:expr)) => { ... };
(fnmadd.d f($rd:expr), f($rs1:expr), f($rs2:expr), f($rs3:expr)) => { ... };
(fnmsub.d f($rd:expr), f($rs1:expr), f($rs2:expr), f($rs3:expr)) => { ... };
}