Skip to content

Instantly share code, notes, and snippets.

@dramforever
Last active June 2, 2025 05:19
Show Gist options
  • Save dramforever/24437f2524f09954bffa9196f03e5523 to your computer and use it in GitHub Desktop.
Save dramforever/24437f2524f09954bffa9196f03e5523 to your computer and use it in GitHub Desktop.
How much RISC-V instruction space do we have left?

(Updated 2025-06-02 https://github.com/riscv/riscv-opcodes/tree/d6b540068aeb1ec442f1bb2d30f0b15860984aad)

If you really want to use this janky code:

$ git clone https://github.com/riscv/riscv-opcodes
$ ./parse.py 'rv_*' 'rv64_*'
$ python3 free-space.py

Summary:

Total of 84.15% RISC-V encoding space is used
  ... 73.52% is RVC
  ... 10.63% is 32-bit instructions
42.51% of >= 32-bit encoding is used
48.58% of 32-bit encoding is used
import json
from collections import Counter
def info_good(info):
# Ignore Zcmt and Zcmp
return not any('_zcmt' in e or '_zcmp' in e for e in info['extension'])
def get_instr_space(info):
n = int(info['mask'], 0).bit_count()
return 2 ** (32 - n)
def get_space_by_ext(data):
ctr = Counter()
for name, info in data.items():
ctr['/'.join(info['extension'])] += get_instr_space(info)
return ctr
if __name__ == '__main__':
with open('instr_dict.json', 'rb') as instr_dict:
data = json.load(instr_dict)
data = { name: info for name, info in data.items() if info_good(info) }
per_instr_space = { name: get_instr_space(info) for name, info in data.items() }
print('By instruction:')
for name, space in sorted(per_instr_space.items(), key=lambda i: (-i[1], i[0])):
norm_name = name.replace('_', '.')
print(f'{norm_name} {space / 2**32:.4g}')
print()
print('By extension:')
per_ext_space = get_space_by_ext(data)
for name, space in sorted(per_ext_space.items(), key=lambda i: (-i[1], i[0])):
print(f'{name} {space / 2**32:.4g}')
print()
total_used = sum(per_instr_space.values())
total_free = 2**32 - total_used
print(f'Total of {100 * total_used / 2**32:.2f}% RISC-V encoding space is used')
rvc_used = sum(use for name, use in per_ext_space.items() if '_c' in name or '_zc' in name)
print(f' ... {100 * rvc_used / 2**32:.2f}% is RVC')
print(f' ... {100 * (total_used - rvc_used) / 2**32:.2f}% is 32-bit instructions')
print(f'{100 * (total_used - rvc_used) / (2**32 / 4):.2f}% of >= 32-bit encoding is used')
print(f'{100 * (total_used - rvc_used) / ((2**32 / 4) * (7 / 8)):.2f}% of 32-bit encoding is used')
By instruction:
c.addi 0.03125
c.addi4spn 0.03125
c.addiw 0.03125
c.beqz 0.03125
c.bnez 0.03125
c.fld 0.03125
c.fldsp 0.03125
c.fsd 0.03125
c.fsdsp 0.03125
c.j 0.03125
c.ld 0.03125
c.ldsp 0.03125
c.li 0.03125
c.lui 0.03125
c.lw 0.03125
c.lwsp 0.03125
c.sd 0.03125
c.sdsp 0.03125
c.slli 0.03125
c.sw 0.03125
c.swsp 0.03125
c.add 0.01562
c.mv 0.01562
auipc 0.007812
c.andi 0.007812
c.srai 0.007812
c.srli 0.007812
jal 0.007812
lui 0.007812
c.lbu 0.003906
c.sb 0.003906
c.lh 0.001953
c.lhu 0.001953
c.sh 0.001953
fmadd.d 0.001953
fmadd.h 0.001953
fmadd.q 0.001953
fmadd.s 0.001953
fmsub.d 0.001953
fmsub.h 0.001953
fmsub.q 0.001953
fmsub.s 0.001953
fnmadd.d 0.001953
fnmadd.h 0.001953
fnmadd.q 0.001953
fnmadd.s 0.001953
fnmsub.d 0.001953
fnmsub.h 0.001953
fnmsub.q 0.001953
fnmsub.s 0.001953
addi 0.0009766
addiw 0.0009766
andi 0.0009766
beq 0.0009766
bge 0.0009766
bgeu 0.0009766
blt 0.0009766
bltu 0.0009766
bne 0.0009766
c.addi16sp 0.0009766
c.addw 0.0009766
c.and 0.0009766
c.mul 0.0009766
c.nop 0.0009766
c.or 0.0009766
c.sub 0.0009766
c.subw 0.0009766
c.xor 0.0009766
csrrc 0.0009766
csrrci 0.0009766
csrrs 0.0009766
csrrsi 0.0009766
csrrw 0.0009766
csrrwi 0.0009766
fence 0.0009766
fence.i 0.0009766
fld 0.0009766
flh 0.0009766
flq 0.0009766
flw 0.0009766
fsd 0.0009766
fsh 0.0009766
fsq 0.0009766
fsw 0.0009766
jalr 0.0009766
lb 0.0009766
lbu 0.0009766
ld 0.0009766
lh 0.0009766
lhu 0.0009766
lw 0.0009766
lwu 0.0009766
ori 0.0009766
sb 0.0009766
sd 0.0009766
sh 0.0009766
slti 0.0009766
sltiu 0.0009766
sw 0.0009766
xori 0.0009766
c.jalr 0.0004883
c.jr 0.0004883
vsetvli 0.0004883
vsetivli 0.0002441
c.mop.N 0.0001221
c.not 0.0001221
c.sext.b 0.0001221
c.sext.h 0.0001221
c.zext.b 0.0001221
c.zext.h 0.0001221
c.zext.w 0.0001221
fadd.d 6.104e-05
fadd.h 6.104e-05
fadd.q 6.104e-05
fadd.s 6.104e-05
fdiv.d 6.104e-05
fdiv.h 6.104e-05
fdiv.q 6.104e-05
fdiv.s 6.104e-05
fmul.d 6.104e-05
fmul.h 6.104e-05
fmul.q 6.104e-05
fmul.s 6.104e-05
fsub.d 6.104e-05
fsub.h 6.104e-05
fsub.q 6.104e-05
fsub.s 6.104e-05
mop.rr.N 6.104e-05
amoadd.b 3.052e-05
amoadd.d 3.052e-05
amoadd.h 3.052e-05
amoadd.w 3.052e-05
amoand.b 3.052e-05
amoand.d 3.052e-05
amoand.h 3.052e-05
amoand.w 3.052e-05
amocas.b 3.052e-05
amocas.d 3.052e-05
amocas.h 3.052e-05
amocas.q 3.052e-05
amocas.w 3.052e-05
amomax.b 3.052e-05
amomax.d 3.052e-05
amomax.h 3.052e-05
amomax.w 3.052e-05
amomaxu.b 3.052e-05
amomaxu.d 3.052e-05
amomaxu.h 3.052e-05
amomaxu.w 3.052e-05
amomin.b 3.052e-05
amomin.d 3.052e-05
amomin.h 3.052e-05
amomin.w 3.052e-05
amominu.b 3.052e-05
amominu.d 3.052e-05
amominu.h 3.052e-05
amominu.w 3.052e-05
amoor.b 3.052e-05
amoor.d 3.052e-05
amoor.h 3.052e-05
amoor.w 3.052e-05
amoswap.b 3.052e-05
amoswap.d 3.052e-05
amoswap.h 3.052e-05
amoswap.w 3.052e-05
amoxor.b 3.052e-05
amoxor.d 3.052e-05
amoxor.h 3.052e-05
amoxor.w 3.052e-05
sc.d 3.052e-05
sc.w 3.052e-05
sm4ed 3.052e-05
sm4ks 3.052e-05
ssamoswap.d 3.052e-05
ssamoswap.w 3.052e-05
vror.vi 3.052e-05
bclri 1.526e-05
bexti 1.526e-05
binvi 1.526e-05
bseti 1.526e-05
c.ebreak 1.526e-05
rori 1.526e-05
slli 1.526e-05
slli.uw 1.526e-05
srai 1.526e-05
srli 1.526e-05
vaadd.vv 1.526e-05
vaadd.vx 1.526e-05
vaaddu.vv 1.526e-05
vaaddu.vx 1.526e-05
vadd.vi 1.526e-05
vadd.vv 1.526e-05
vadd.vx 1.526e-05
vand.vi 1.526e-05
vand.vv 1.526e-05
vand.vx 1.526e-05
vandn.vv 1.526e-05
vandn.vx 1.526e-05
vasub.vv 1.526e-05
vasub.vx 1.526e-05
vasubu.vv 1.526e-05
vasubu.vx 1.526e-05
vclmul.vv 1.526e-05
vclmul.vx 1.526e-05
vclmulh.vv 1.526e-05
vclmulh.vx 1.526e-05
vdiv.vv 1.526e-05
vdiv.vx 1.526e-05
vdivu.vv 1.526e-05
vdivu.vx 1.526e-05
vfadd.vf 1.526e-05
vfadd.vv 1.526e-05
vfdiv.vf 1.526e-05
vfdiv.vv 1.526e-05
vfmacc.vf 1.526e-05
vfmacc.vv 1.526e-05
vfmadd.vf 1.526e-05
vfmadd.vv 1.526e-05
vfmax.vf 1.526e-05
vfmax.vv 1.526e-05
vfmin.vf 1.526e-05
vfmin.vv 1.526e-05
vfmsac.vf 1.526e-05
vfmsac.vv 1.526e-05
vfmsub.vf 1.526e-05
vfmsub.vv 1.526e-05
vfmul.vf 1.526e-05
vfmul.vv 1.526e-05
vfnmacc.vf 1.526e-05
vfnmacc.vv 1.526e-05
vfnmadd.vf 1.526e-05
vfnmadd.vv 1.526e-05
vfnmsac.vf 1.526e-05
vfnmsac.vv 1.526e-05
vfnmsub.vf 1.526e-05
vfnmsub.vv 1.526e-05
vfrdiv.vf 1.526e-05
vfredmax.vs 1.526e-05
vfredmin.vs 1.526e-05
vfredosum.vs 1.526e-05
vfredusum.vs 1.526e-05
vfrsub.vf 1.526e-05
vfsgnj.vf 1.526e-05
vfsgnj.vv 1.526e-05
vfsgnjn.vf 1.526e-05
vfsgnjn.vv 1.526e-05
vfsgnjx.vf 1.526e-05
vfsgnjx.vv 1.526e-05
vfslide1down.vf 1.526e-05
vfslide1up.vf 1.526e-05
vfsub.vf 1.526e-05
vfsub.vv 1.526e-05
vfwadd.vf 1.526e-05
vfwadd.vv 1.526e-05
vfwadd.wf 1.526e-05
vfwadd.wv 1.526e-05
vfwmacc.vf 1.526e-05
vfwmacc.vv 1.526e-05
vfwmaccbf16.vf 1.526e-05
vfwmaccbf16.vv 1.526e-05
vfwmsac.vf 1.526e-05
vfwmsac.vv 1.526e-05
vfwmul.vf 1.526e-05
vfwmul.vv 1.526e-05
vfwnmacc.vf 1.526e-05
vfwnmacc.vv 1.526e-05
vfwnmsac.vf 1.526e-05
vfwnmsac.vv 1.526e-05
vfwredosum.vs 1.526e-05
vfwredusum.vs 1.526e-05
vfwsub.vf 1.526e-05
vfwsub.vv 1.526e-05
vfwsub.wf 1.526e-05
vfwsub.wv 1.526e-05
vloxei16.v 1.526e-05
vloxei32.v 1.526e-05
vloxei64.v 1.526e-05
vloxei8.v 1.526e-05
vloxseg2ei16.v 1.526e-05
vloxseg2ei32.v 1.526e-05
vloxseg2ei64.v 1.526e-05
vloxseg2ei8.v 1.526e-05
vloxseg3ei16.v 1.526e-05
vloxseg3ei32.v 1.526e-05
vloxseg3ei64.v 1.526e-05
vloxseg3ei8.v 1.526e-05
vloxseg4ei16.v 1.526e-05
vloxseg4ei32.v 1.526e-05
vloxseg4ei64.v 1.526e-05
vloxseg4ei8.v 1.526e-05
vloxseg5ei16.v 1.526e-05
vloxseg5ei32.v 1.526e-05
vloxseg5ei64.v 1.526e-05
vloxseg5ei8.v 1.526e-05
vloxseg6ei16.v 1.526e-05
vloxseg6ei32.v 1.526e-05
vloxseg6ei64.v 1.526e-05
vloxseg6ei8.v 1.526e-05
vloxseg7ei16.v 1.526e-05
vloxseg7ei32.v 1.526e-05
vloxseg7ei64.v 1.526e-05
vloxseg7ei8.v 1.526e-05
vloxseg8ei16.v 1.526e-05
vloxseg8ei32.v 1.526e-05
vloxseg8ei64.v 1.526e-05
vloxseg8ei8.v 1.526e-05
vlse16.v 1.526e-05
vlse32.v 1.526e-05
vlse64.v 1.526e-05
vlse8.v 1.526e-05
vlsseg2e16.v 1.526e-05
vlsseg2e32.v 1.526e-05
vlsseg2e64.v 1.526e-05
vlsseg2e8.v 1.526e-05
vlsseg3e16.v 1.526e-05
vlsseg3e32.v 1.526e-05
vlsseg3e64.v 1.526e-05
vlsseg3e8.v 1.526e-05
vlsseg4e16.v 1.526e-05
vlsseg4e32.v 1.526e-05
vlsseg4e64.v 1.526e-05
vlsseg4e8.v 1.526e-05
vlsseg5e16.v 1.526e-05
vlsseg5e32.v 1.526e-05
vlsseg5e64.v 1.526e-05
vlsseg5e8.v 1.526e-05
vlsseg6e16.v 1.526e-05
vlsseg6e32.v 1.526e-05
vlsseg6e64.v 1.526e-05
vlsseg6e8.v 1.526e-05
vlsseg7e16.v 1.526e-05
vlsseg7e32.v 1.526e-05
vlsseg7e64.v 1.526e-05
vlsseg7e8.v 1.526e-05
vlsseg8e16.v 1.526e-05
vlsseg8e32.v 1.526e-05
vlsseg8e64.v 1.526e-05
vlsseg8e8.v 1.526e-05
vluxei16.v 1.526e-05
vluxei32.v 1.526e-05
vluxei64.v 1.526e-05
vluxei8.v 1.526e-05
vluxseg2ei16.v 1.526e-05
vluxseg2ei32.v 1.526e-05
vluxseg2ei64.v 1.526e-05
vluxseg2ei8.v 1.526e-05
vluxseg3ei16.v 1.526e-05
vluxseg3ei32.v 1.526e-05
vluxseg3ei64.v 1.526e-05
vluxseg3ei8.v 1.526e-05
vluxseg4ei16.v 1.526e-05
vluxseg4ei32.v 1.526e-05
vluxseg4ei64.v 1.526e-05
vluxseg4ei8.v 1.526e-05
vluxseg5ei16.v 1.526e-05
vluxseg5ei32.v 1.526e-05
vluxseg5ei64.v 1.526e-05
vluxseg5ei8.v 1.526e-05
vluxseg6ei16.v 1.526e-05
vluxseg6ei32.v 1.526e-05
vluxseg6ei64.v 1.526e-05
vluxseg6ei8.v 1.526e-05
vluxseg7ei16.v 1.526e-05
vluxseg7ei32.v 1.526e-05
vluxseg7ei64.v 1.526e-05
vluxseg7ei8.v 1.526e-05
vluxseg8ei16.v 1.526e-05
vluxseg8ei32.v 1.526e-05
vluxseg8ei64.v 1.526e-05
vluxseg8ei8.v 1.526e-05
vmacc.vv 1.526e-05
vmacc.vx 1.526e-05
vmadd.vv 1.526e-05
vmadd.vx 1.526e-05
vmax.vv 1.526e-05
vmax.vx 1.526e-05
vmaxu.vv 1.526e-05
vmaxu.vx 1.526e-05
vmfeq.vf 1.526e-05
vmfeq.vv 1.526e-05
vmfge.vf 1.526e-05
vmfgt.vf 1.526e-05
vmfle.vf 1.526e-05
vmfle.vv 1.526e-05
vmflt.vf 1.526e-05
vmflt.vv 1.526e-05
vmfne.vf 1.526e-05
vmfne.vv 1.526e-05
vmin.vv 1.526e-05
vmin.vx 1.526e-05
vminu.vv 1.526e-05
vminu.vx 1.526e-05
vmseq.vi 1.526e-05
vmseq.vv 1.526e-05
vmseq.vx 1.526e-05
vmsgt.vi 1.526e-05
vmsgt.vx 1.526e-05
vmsgtu.vi 1.526e-05
vmsgtu.vx 1.526e-05
vmsle.vi 1.526e-05
vmsle.vv 1.526e-05
vmsle.vx 1.526e-05
vmsleu.vi 1.526e-05
vmsleu.vv 1.526e-05
vmsleu.vx 1.526e-05
vmslt.vv 1.526e-05
vmslt.vx 1.526e-05
vmsltu.vv 1.526e-05
vmsltu.vx 1.526e-05
vmsne.vi 1.526e-05
vmsne.vv 1.526e-05
vmsne.vx 1.526e-05
vmul.vv 1.526e-05
vmul.vx 1.526e-05
vmulh.vv 1.526e-05
vmulh.vx 1.526e-05
vmulhsu.vv 1.526e-05
vmulhsu.vx 1.526e-05
vmulhu.vv 1.526e-05
vmulhu.vx 1.526e-05
vnclip.wi 1.526e-05
vnclip.wv 1.526e-05
vnclip.wx 1.526e-05
vnclipu.wi 1.526e-05
vnclipu.wv 1.526e-05
vnclipu.wx 1.526e-05
vnmsac.vv 1.526e-05
vnmsac.vx 1.526e-05
vnmsub.vv 1.526e-05
vnmsub.vx 1.526e-05
vnsra.wi 1.526e-05
vnsra.wv 1.526e-05
vnsra.wx 1.526e-05
vnsrl.wi 1.526e-05
vnsrl.wv 1.526e-05
vnsrl.wx 1.526e-05
vor.vi 1.526e-05
vor.vv 1.526e-05
vor.vx 1.526e-05
vredand.vs 1.526e-05
vredmax.vs 1.526e-05
vredmaxu.vs 1.526e-05
vredmin.vs 1.526e-05
vredminu.vs 1.526e-05
vredor.vs 1.526e-05
vredsum.vs 1.526e-05
vredxor.vs 1.526e-05
vrem.vv 1.526e-05
vrem.vx 1.526e-05
vremu.vv 1.526e-05
vremu.vx 1.526e-05
vrgather.vi 1.526e-05
vrgather.vv 1.526e-05
vrgather.vx 1.526e-05
vrgatherei16.vv 1.526e-05
vrol.vv 1.526e-05
vrol.vx 1.526e-05
vror.vv 1.526e-05
vror.vx 1.526e-05
vrsub.vi 1.526e-05
vrsub.vx 1.526e-05
vsadd.vi 1.526e-05
vsadd.vv 1.526e-05
vsadd.vx 1.526e-05
vsaddu.vi 1.526e-05
vsaddu.vv 1.526e-05
vsaddu.vx 1.526e-05
vslide1down.vx 1.526e-05
vslide1up.vx 1.526e-05
vslidedown.vi 1.526e-05
vslidedown.vx 1.526e-05
vslideup.vi 1.526e-05
vslideup.vx 1.526e-05
vsll.vi 1.526e-05
vsll.vv 1.526e-05
vsll.vx 1.526e-05
vsmul.vv 1.526e-05
vsmul.vx 1.526e-05
vsoxei16.v 1.526e-05
vsoxei32.v 1.526e-05
vsoxei64.v 1.526e-05
vsoxei8.v 1.526e-05
vsoxseg2ei16.v 1.526e-05
vsoxseg2ei32.v 1.526e-05
vsoxseg2ei64.v 1.526e-05
vsoxseg2ei8.v 1.526e-05
vsoxseg3ei16.v 1.526e-05
vsoxseg3ei32.v 1.526e-05
vsoxseg3ei64.v 1.526e-05
vsoxseg3ei8.v 1.526e-05
vsoxseg4ei16.v 1.526e-05
vsoxseg4ei32.v 1.526e-05
vsoxseg4ei64.v 1.526e-05
vsoxseg4ei8.v 1.526e-05
vsoxseg5ei16.v 1.526e-05
vsoxseg5ei32.v 1.526e-05
vsoxseg5ei64.v 1.526e-05
vsoxseg5ei8.v 1.526e-05
vsoxseg6ei16.v 1.526e-05
vsoxseg6ei32.v 1.526e-05
vsoxseg6ei64.v 1.526e-05
vsoxseg6ei8.v 1.526e-05
vsoxseg7ei16.v 1.526e-05
vsoxseg7ei32.v 1.526e-05
vsoxseg7ei64.v 1.526e-05
vsoxseg7ei8.v 1.526e-05
vsoxseg8ei16.v 1.526e-05
vsoxseg8ei32.v 1.526e-05
vsoxseg8ei64.v 1.526e-05
vsoxseg8ei8.v 1.526e-05
vsra.vi 1.526e-05
vsra.vv 1.526e-05
vsra.vx 1.526e-05
vsrl.vi 1.526e-05
vsrl.vv 1.526e-05
vsrl.vx 1.526e-05
vsse16.v 1.526e-05
vsse32.v 1.526e-05
vsse64.v 1.526e-05
vsse8.v 1.526e-05
vssra.vi 1.526e-05
vssra.vv 1.526e-05
vssra.vx 1.526e-05
vssrl.vi 1.526e-05
vssrl.vv 1.526e-05
vssrl.vx 1.526e-05
vssseg2e16.v 1.526e-05
vssseg2e32.v 1.526e-05
vssseg2e64.v 1.526e-05
vssseg2e8.v 1.526e-05
vssseg3e16.v 1.526e-05
vssseg3e32.v 1.526e-05
vssseg3e64.v 1.526e-05
vssseg3e8.v 1.526e-05
vssseg4e16.v 1.526e-05
vssseg4e32.v 1.526e-05
vssseg4e64.v 1.526e-05
vssseg4e8.v 1.526e-05
vssseg5e16.v 1.526e-05
vssseg5e32.v 1.526e-05
vssseg5e64.v 1.526e-05
vssseg5e8.v 1.526e-05
vssseg6e16.v 1.526e-05
vssseg6e32.v 1.526e-05
vssseg6e64.v 1.526e-05
vssseg6e8.v 1.526e-05
vssseg7e16.v 1.526e-05
vssseg7e32.v 1.526e-05
vssseg7e64.v 1.526e-05
vssseg7e8.v 1.526e-05
vssseg8e16.v 1.526e-05
vssseg8e32.v 1.526e-05
vssseg8e64.v 1.526e-05
vssseg8e8.v 1.526e-05
vssub.vv 1.526e-05
vssub.vx 1.526e-05
vssubu.vv 1.526e-05
vssubu.vx 1.526e-05
vsub.vv 1.526e-05
vsub.vx 1.526e-05
vsuxei16.v 1.526e-05
vsuxei32.v 1.526e-05
vsuxei64.v 1.526e-05
vsuxei8.v 1.526e-05
vsuxseg2ei16.v 1.526e-05
vsuxseg2ei32.v 1.526e-05
vsuxseg2ei64.v 1.526e-05
vsuxseg2ei8.v 1.526e-05
vsuxseg3ei16.v 1.526e-05
vsuxseg3ei32.v 1.526e-05
vsuxseg3ei64.v 1.526e-05
vsuxseg3ei8.v 1.526e-05
vsuxseg4ei16.v 1.526e-05
vsuxseg4ei32.v 1.526e-05
vsuxseg4ei64.v 1.526e-05
vsuxseg4ei8.v 1.526e-05
vsuxseg5ei16.v 1.526e-05
vsuxseg5ei32.v 1.526e-05
vsuxseg5ei64.v 1.526e-05
vsuxseg5ei8.v 1.526e-05
vsuxseg6ei16.v 1.526e-05
vsuxseg6ei32.v 1.526e-05
vsuxseg6ei64.v 1.526e-05
vsuxseg6ei8.v 1.526e-05
vsuxseg7ei16.v 1.526e-05
vsuxseg7ei32.v 1.526e-05
vsuxseg7ei64.v 1.526e-05
vsuxseg7ei8.v 1.526e-05
vsuxseg8ei16.v 1.526e-05
vsuxseg8ei32.v 1.526e-05
vsuxseg8ei64.v 1.526e-05
vsuxseg8ei8.v 1.526e-05
vwadd.vv 1.526e-05
vwadd.vx 1.526e-05
vwadd.wv 1.526e-05
vwadd.wx 1.526e-05
vwaddu.vv 1.526e-05
vwaddu.vx 1.526e-05
vwaddu.wv 1.526e-05
vwaddu.wx 1.526e-05
vwmacc.vv 1.526e-05
vwmacc.vx 1.526e-05
vwmaccsu.vv 1.526e-05
vwmaccsu.vx 1.526e-05
vwmaccu.vv 1.526e-05
vwmaccu.vx 1.526e-05
vwmaccus.vx 1.526e-05
vwmul.vv 1.526e-05
vwmul.vx 1.526e-05
vwmulsu.vv 1.526e-05
vwmulsu.vx 1.526e-05
vwmulu.vv 1.526e-05
vwmulu.vx 1.526e-05
vwredsum.vs 1.526e-05
vwredsumu.vs 1.526e-05
vwsll.vi 1.526e-05
vwsll.vv 1.526e-05
vwsll.vx 1.526e-05
vwsub.vv 1.526e-05
vwsub.vx 1.526e-05
vwsub.wv 1.526e-05
vwsub.wx 1.526e-05
vwsubu.vv 1.526e-05
vwsubu.vx 1.526e-05
vwsubu.wv 1.526e-05
vwsubu.wx 1.526e-05
vxor.vi 1.526e-05
vxor.vv 1.526e-05
vxor.vx 1.526e-05
add 7.629e-06
add.uw 7.629e-06
addw 7.629e-06
aes64ds 7.629e-06
aes64dsm 7.629e-06
aes64es 7.629e-06
aes64esm 7.629e-06
aes64ks2 7.629e-06
and 7.629e-06
andn 7.629e-06
bclr 7.629e-06
bext 7.629e-06
binv 7.629e-06
bset 7.629e-06
clmul 7.629e-06
clmulh 7.629e-06
clmulr 7.629e-06
czero.eqz 7.629e-06
czero.nez 7.629e-06
div 7.629e-06
divu 7.629e-06
divuw 7.629e-06
divw 7.629e-06
feq.d 7.629e-06
feq.h 7.629e-06
feq.q 7.629e-06
feq.s 7.629e-06
fle.d 7.629e-06
fle.h 7.629e-06
fle.q 7.629e-06
fle.s 7.629e-06
fleq.d 7.629e-06
fleq.h 7.629e-06
fleq.q 7.629e-06
fleq.s 7.629e-06
flt.d 7.629e-06
flt.h 7.629e-06
flt.q 7.629e-06
flt.s 7.629e-06
fltq.d 7.629e-06
fltq.h 7.629e-06
fltq.q 7.629e-06
fltq.s 7.629e-06
fmax.d 7.629e-06
fmax.h 7.629e-06
fmax.q 7.629e-06
fmax.s 7.629e-06
fmaxm.d 7.629e-06
fmaxm.h 7.629e-06
fmaxm.q 7.629e-06
fmaxm.s 7.629e-06
fmin.d 7.629e-06
fmin.h 7.629e-06
fmin.q 7.629e-06
fmin.s 7.629e-06
fminm.d 7.629e-06
fminm.h 7.629e-06
fminm.q 7.629e-06
fminm.s 7.629e-06
fmvp.q.x 7.629e-06
fsgnj.d 7.629e-06
fsgnj.h 7.629e-06
fsgnj.q 7.629e-06
fsgnj.s 7.629e-06
fsgnjn.d 7.629e-06
fsgnjn.h 7.629e-06
fsgnjn.q 7.629e-06
fsgnjn.s 7.629e-06
fsgnjx.d 7.629e-06
fsgnjx.h 7.629e-06
fsgnjx.q 7.629e-06
fsgnjx.s 7.629e-06
max 7.629e-06
maxu 7.629e-06
min 7.629e-06
minu 7.629e-06
mop.r.N 7.629e-06
mul 7.629e-06
mulh 7.629e-06
mulhsu 7.629e-06
mulhu 7.629e-06
mulw 7.629e-06
or 7.629e-06
orn 7.629e-06
pack 7.629e-06
packh 7.629e-06
packw 7.629e-06
rem 7.629e-06
remu 7.629e-06
remuw 7.629e-06
remw 7.629e-06
rol 7.629e-06
rolw 7.629e-06
ror 7.629e-06
roriw 7.629e-06
rorw 7.629e-06
sh1add 7.629e-06
sh1add.uw 7.629e-06
sh2add 7.629e-06
sh2add.uw 7.629e-06
sh3add 7.629e-06
sh3add.uw 7.629e-06
sll 7.629e-06
slliw 7.629e-06
sllw 7.629e-06
slt 7.629e-06
sltu 7.629e-06
sra 7.629e-06
sraiw 7.629e-06
sraw 7.629e-06
srl 7.629e-06
srliw 7.629e-06
srlw 7.629e-06
sub 7.629e-06
subw 7.629e-06
vadc.vim 7.629e-06
vadc.vvm 7.629e-06
vadc.vxm 7.629e-06
vaeskf1.vi 7.629e-06
vaeskf2.vi 7.629e-06
vcompress.vm 7.629e-06
vfmerge.vfm 7.629e-06
vghsh.vv 7.629e-06
vmadc.vi 7.629e-06
vmadc.vim 7.629e-06
vmadc.vv 7.629e-06
vmadc.vvm 7.629e-06
vmadc.vx 7.629e-06
vmadc.vxm 7.629e-06
vmand.mm 7.629e-06
vmandn.mm 7.629e-06
vmerge.vim 7.629e-06
vmerge.vvm 7.629e-06
vmerge.vxm 7.629e-06
vmnand.mm 7.629e-06
vmnor.mm 7.629e-06
vmor.mm 7.629e-06
vmorn.mm 7.629e-06
vmsbc.vv 7.629e-06
vmsbc.vvm 7.629e-06
vmsbc.vx 7.629e-06
vmsbc.vxm 7.629e-06
vmxnor.mm 7.629e-06
vmxor.mm 7.629e-06
vsbc.vvm 7.629e-06
vsbc.vxm 7.629e-06
vsetvl 7.629e-06
vsha2ch.vv 7.629e-06
vsha2cl.vv 7.629e-06
vsha2ms.vv 7.629e-06
vsm3c.vi 7.629e-06
vsm3me.vv 7.629e-06
vsm4k.vi 7.629e-06
xnor 7.629e-06
xor 7.629e-06
xperm4 7.629e-06
xperm8 7.629e-06
aes64ks1i 3.815e-06
fcvt.bf16.s 1.907e-06
fcvt.d.h 1.907e-06
fcvt.d.l 1.907e-06
fcvt.d.lu 1.907e-06
fcvt.d.q 1.907e-06
fcvt.d.s 1.907e-06
fcvt.d.w 1.907e-06
fcvt.d.wu 1.907e-06
fcvt.h.d 1.907e-06
fcvt.h.l 1.907e-06
fcvt.h.lu 1.907e-06
fcvt.h.q 1.907e-06
fcvt.h.s 1.907e-06
fcvt.h.w 1.907e-06
fcvt.h.wu 1.907e-06
fcvt.l.d 1.907e-06
fcvt.l.h 1.907e-06
fcvt.l.q 1.907e-06
fcvt.l.s 1.907e-06
fcvt.lu.d 1.907e-06
fcvt.lu.h 1.907e-06
fcvt.lu.q 1.907e-06
fcvt.lu.s 1.907e-06
fcvt.q.d 1.907e-06
fcvt.q.h 1.907e-06
fcvt.q.l 1.907e-06
fcvt.q.lu 1.907e-06
fcvt.q.s 1.907e-06
fcvt.q.w 1.907e-06
fcvt.q.wu 1.907e-06
fcvt.s.bf16 1.907e-06
fcvt.s.d 1.907e-06
fcvt.s.h 1.907e-06
fcvt.s.l 1.907e-06
fcvt.s.lu 1.907e-06
fcvt.s.q 1.907e-06
fcvt.s.w 1.907e-06
fcvt.s.wu 1.907e-06
fcvt.w.d 1.907e-06
fcvt.w.h 1.907e-06
fcvt.w.q 1.907e-06
fcvt.w.s 1.907e-06
fcvt.wu.d 1.907e-06
fcvt.wu.h 1.907e-06
fcvt.wu.q 1.907e-06
fcvt.wu.s 1.907e-06
fround.d 1.907e-06
fround.h 1.907e-06
fround.q 1.907e-06
fround.s 1.907e-06
froundnx.d 1.907e-06
froundnx.h 1.907e-06
froundnx.q 1.907e-06
froundnx.s 1.907e-06
fsqrt.d 1.907e-06
fsqrt.h 1.907e-06
fsqrt.q 1.907e-06
fsqrt.s 1.907e-06
lr.d 9.537e-07
lr.w 9.537e-07
vbrev8.v 4.768e-07
vbrev.v 4.768e-07
vclz.v 4.768e-07
vcpop.m 4.768e-07
vcpop.v 4.768e-07
vctz.v 4.768e-07
vfclass.v 4.768e-07
vfcvt.f.x.v 4.768e-07
vfcvt.f.xu.v 4.768e-07
vfcvt.rtz.x.f.v 4.768e-07
vfcvt.rtz.xu.f.v 4.768e-07
vfcvt.x.f.v 4.768e-07
vfcvt.xu.f.v 4.768e-07
vfirst.m 4.768e-07
vfncvt.f.f.w 4.768e-07
vfncvt.f.x.w 4.768e-07
vfncvt.f.xu.w 4.768e-07
vfncvt.rod.f.f.w 4.768e-07
vfncvt.rtz.x.f.w 4.768e-07
vfncvt.rtz.xu.f.w 4.768e-07
vfncvt.x.f.w 4.768e-07
vfncvt.xu.f.w 4.768e-07
vfncvtbf16.f.f.w 4.768e-07
vfrec7.v 4.768e-07
vfrsqrt7.v 4.768e-07
vfsqrt.v 4.768e-07
vfwcvt.f.f.v 4.768e-07
vfwcvt.f.x.v 4.768e-07
vfwcvt.f.xu.v 4.768e-07
vfwcvt.rtz.x.f.v 4.768e-07
vfwcvt.rtz.xu.f.v 4.768e-07
vfwcvt.x.f.v 4.768e-07
vfwcvt.xu.f.v 4.768e-07
vfwcvtbf16.f.f.v 4.768e-07
viota.m 4.768e-07
vle16.v 4.768e-07
vle16ff.v 4.768e-07
vle32.v 4.768e-07
vle32ff.v 4.768e-07
vle64.v 4.768e-07
vle64ff.v 4.768e-07
vle8.v 4.768e-07
vle8ff.v 4.768e-07
vlseg2e16.v 4.768e-07
vlseg2e16ff.v 4.768e-07
vlseg2e32.v 4.768e-07
vlseg2e32ff.v 4.768e-07
vlseg2e64.v 4.768e-07
vlseg2e64ff.v 4.768e-07
vlseg2e8.v 4.768e-07
vlseg2e8ff.v 4.768e-07
vlseg3e16.v 4.768e-07
vlseg3e16ff.v 4.768e-07
vlseg3e32.v 4.768e-07
vlseg3e32ff.v 4.768e-07
vlseg3e64.v 4.768e-07
vlseg3e64ff.v 4.768e-07
vlseg3e8.v 4.768e-07
vlseg3e8ff.v 4.768e-07
vlseg4e16.v 4.768e-07
vlseg4e16ff.v 4.768e-07
vlseg4e32.v 4.768e-07
vlseg4e32ff.v 4.768e-07
vlseg4e64.v 4.768e-07
vlseg4e64ff.v 4.768e-07
vlseg4e8.v 4.768e-07
vlseg4e8ff.v 4.768e-07
vlseg5e16.v 4.768e-07
vlseg5e16ff.v 4.768e-07
vlseg5e32.v 4.768e-07
vlseg5e32ff.v 4.768e-07
vlseg5e64.v 4.768e-07
vlseg5e64ff.v 4.768e-07
vlseg5e8.v 4.768e-07
vlseg5e8ff.v 4.768e-07
vlseg6e16.v 4.768e-07
vlseg6e16ff.v 4.768e-07
vlseg6e32.v 4.768e-07
vlseg6e32ff.v 4.768e-07
vlseg6e64.v 4.768e-07
vlseg6e64ff.v 4.768e-07
vlseg6e8.v 4.768e-07
vlseg6e8ff.v 4.768e-07
vlseg7e16.v 4.768e-07
vlseg7e16ff.v 4.768e-07
vlseg7e32.v 4.768e-07
vlseg7e32ff.v 4.768e-07
vlseg7e64.v 4.768e-07
vlseg7e64ff.v 4.768e-07
vlseg7e8.v 4.768e-07
vlseg7e8ff.v 4.768e-07
vlseg8e16.v 4.768e-07
vlseg8e16ff.v 4.768e-07
vlseg8e32.v 4.768e-07
vlseg8e32ff.v 4.768e-07
vlseg8e64.v 4.768e-07
vlseg8e64ff.v 4.768e-07
vlseg8e8.v 4.768e-07
vlseg8e8ff.v 4.768e-07
vmsbf.m 4.768e-07
vmsif.m 4.768e-07
vmsof.m 4.768e-07
vrev8.v 4.768e-07
vse16.v 4.768e-07
vse32.v 4.768e-07
vse64.v 4.768e-07
vse8.v 4.768e-07
vsext.vf2 4.768e-07
vsext.vf4 4.768e-07
vsext.vf8 4.768e-07
vsseg2e16.v 4.768e-07
vsseg2e32.v 4.768e-07
vsseg2e64.v 4.768e-07
vsseg2e8.v 4.768e-07
vsseg3e16.v 4.768e-07
vsseg3e32.v 4.768e-07
vsseg3e64.v 4.768e-07
vsseg3e8.v 4.768e-07
vsseg4e16.v 4.768e-07
vsseg4e32.v 4.768e-07
vsseg4e64.v 4.768e-07
vsseg4e8.v 4.768e-07
vsseg5e16.v 4.768e-07
vsseg5e32.v 4.768e-07
vsseg5e64.v 4.768e-07
vsseg5e8.v 4.768e-07
vsseg6e16.v 4.768e-07
vsseg6e32.v 4.768e-07
vsseg6e64.v 4.768e-07
vsseg6e8.v 4.768e-07
vsseg7e16.v 4.768e-07
vsseg7e32.v 4.768e-07
vsseg7e64.v 4.768e-07
vsseg7e8.v 4.768e-07
vsseg8e16.v 4.768e-07
vsseg8e32.v 4.768e-07
vsseg8e64.v 4.768e-07
vsseg8e8.v 4.768e-07
vzext.vf2 4.768e-07
vzext.vf4 4.768e-07
vzext.vf8 4.768e-07
aes64im 2.384e-07
brev8 2.384e-07
clz 2.384e-07
clzw 2.384e-07
cpop 2.384e-07
cpopw 2.384e-07
ctz 2.384e-07
ctzw 2.384e-07
fclass.d 2.384e-07
fclass.h 2.384e-07
fclass.q 2.384e-07
fclass.s 2.384e-07
fcvtmod.w.d 2.384e-07
fli.d 2.384e-07
fli.h 2.384e-07
fli.q 2.384e-07
fli.s 2.384e-07
fmv.d.x 2.384e-07
fmv.h.x 2.384e-07
fmv.w.x 2.384e-07
fmv.x.d 2.384e-07
fmv.x.h 2.384e-07
fmv.x.w 2.384e-07
fmvh.x.q 2.384e-07
hfence.gvma 2.384e-07
hfence.vvma 2.384e-07
hinval.gvma 2.384e-07
hinval.vvma 2.384e-07
hlv.b 2.384e-07
hlv.bu 2.384e-07
hlv.d 2.384e-07
hlv.h 2.384e-07
hlv.hu 2.384e-07
hlv.w 2.384e-07
hlv.wu 2.384e-07
hlvx.hu 2.384e-07
hlvx.wu 2.384e-07
hsv.b 2.384e-07
hsv.d 2.384e-07
hsv.h 2.384e-07
hsv.w 2.384e-07
orc.b 2.384e-07
rev8 2.384e-07
sext.b 2.384e-07
sext.h 2.384e-07
sfence.vma 2.384e-07
sha256sig0 2.384e-07
sha256sig1 2.384e-07
sha256sum0 2.384e-07
sha256sum1 2.384e-07
sha512sig0 2.384e-07
sha512sig1 2.384e-07
sha512sum0 2.384e-07
sha512sum1 2.384e-07
sinval.vma 2.384e-07
sm3p0 2.384e-07
sm3p1 2.384e-07
vaesdf.vs 2.384e-07
vaesdf.vv 2.384e-07
vaesdm.vs 2.384e-07
vaesdm.vv 2.384e-07
vaesef.vs 2.384e-07
vaesef.vv 2.384e-07
vaesem.vs 2.384e-07
vaesem.vv 2.384e-07
vaesz.vs 2.384e-07
vfmv.f.s 2.384e-07
vfmv.s.f 2.384e-07
vfmv.v.f 2.384e-07
vgmul.vv 2.384e-07
vl1re16.v 2.384e-07
vl1re32.v 2.384e-07
vl1re64.v 2.384e-07
vl1re8.v 2.384e-07
vl2re16.v 2.384e-07
vl2re32.v 2.384e-07
vl2re64.v 2.384e-07
vl2re8.v 2.384e-07
vl4re16.v 2.384e-07
vl4re32.v 2.384e-07
vl4re64.v 2.384e-07
vl4re8.v 2.384e-07
vl8re16.v 2.384e-07
vl8re32.v 2.384e-07
vl8re64.v 2.384e-07
vl8re8.v 2.384e-07
vlm.v 2.384e-07
vmv1r.v 2.384e-07
vmv2r.v 2.384e-07
vmv4r.v 2.384e-07
vmv8r.v 2.384e-07
vmv.s.x 2.384e-07
vmv.v.i 2.384e-07
vmv.v.v 2.384e-07
vmv.v.x 2.384e-07
vmv.x.s 2.384e-07
vs1r.v 2.384e-07
vs2r.v 2.384e-07
vs4r.v 2.384e-07
vs8r.v 2.384e-07
vsm4r.vs 2.384e-07
vsm4r.vv 2.384e-07
vsm.v 2.384e-07
vid.v 1.49e-08
cbo.clean 7.451e-09
cbo.flush 7.451e-09
cbo.inval 7.451e-09
cbo.zero 7.451e-09
dret 2.328e-10
ebreak 2.328e-10
ecall 2.328e-10
mnret 2.328e-10
mret 2.328e-10
sctrclr 2.328e-10
sfence.inval.ir 2.328e-10
sfence.w.inval 2.328e-10
sret 2.328e-10
wfi 2.328e-10
wrs.nto 2.328e-10
wrs.sto 2.328e-10
By extension:
rv_c 0.3897
rv64_c 0.2051
rv_c_d 0.125
rv_i 0.045
rv_zcb 0.01526
rv_q 0.01009
rv_zfh 0.01008
rv_d 0.01008
rv_f 0.01008
rv_v 0.007556
rv_zicsr 0.005859
rv64_i 0.004013
rv_zifencei 0.0009766
rv_zabha 0.0006104
rv64_a 0.0003061
rv_a 0.0003061
rv_zvbb/rv_zvks/rv_zvkn 0.0001707
rv64_zcb 0.0001221
rv_zcmop 0.0001221
rv_zimop 6.866e-05
rv64_zbs 6.104e-05
rv_m 6.104e-05
rv_zacas 6.104e-05
rv_zicfiss 6.104e-05
rv_zksed/rv_zks 6.104e-05
rv_zvbc/rv_zvks/rv_zvkn 6.104e-05
rv64_zba 4.578e-05
rv64_m 3.815e-05
rv64_zbb/rv64_zks/rv64_zkn/rv64_zk/rv64_zbkb 3.815e-05
rv_zbb/rv_zks/rv_zkn/rv_zk/rv_zbkb 3.815e-05
rv_d_zfa 3.481e-05
rv_f_zfa 3.457e-05
rv_q_zfa 3.457e-05
rv_zfh_zfa 3.457e-05
rv_zbb 3.195e-05
rv64_zacas 3.052e-05
rv_zbs 3.052e-05
rv_zvfbfwma 3.052e-05
rv_zba 2.289e-05
rv_zvknha/rv_zvknhb/rv_zvkn 2.289e-05
rv_zvkned/rv_zvkn 1.74e-05
rv64_zknd/rv64_zkn/rv64_zk 1.55e-05
rv64_zkne/rv64_zkn/rv64_zk 1.526e-05
rv_zbc/rv_zks/rv_zkn/rv_zk/rv_zbkc 1.526e-05
rv_zbkb/rv_zks/rv_zkn/rv_zk 1.526e-05
rv_zbkx/rv_zks/rv_zkn/rv_zk 1.526e-05
rv_zicond 1.526e-05
rv_zvksh/rv_zvks 1.526e-05
rv64_zknd/rv64_zkne/rv64_zkn/rv64_zk 1.144e-05
rv64_d 8.106e-06
rv_zvksed/rv_zvks 8.106e-06
rv64_q_zfa 7.868e-06
rv_zvkg 7.868e-06
rv64_f 7.629e-06
rv64_q 7.629e-06
rv64_zbkb/rv64_zks/rv64_zkn/rv64_zk 7.629e-06
rv64_zfh 7.629e-06
rv_zbc 7.629e-06
rv_d_zfh 3.815e-06
rv_q_zfh 3.815e-06
rv_zfbfmin 3.815e-06
rv_h 2.861e-06
rv64_zknh/rv64_zkn/rv64_zk 9.537e-07
rv_zknh/rv_zkn/rv_zk 9.537e-07
rv_zvfbfmin 9.537e-07
rv64_h 7.153e-07
rv64_zbb 7.153e-07
rv_svinval_h 4.768e-07
rv_zksh/rv_zks 4.768e-07
rv_svinval 2.389e-07
rv_s 2.387e-07
rv64_zks/rv64_zkn/rv64_zk/rv64_zbkb/rv64_zbb 2.384e-07
rv_zks/rv_zkn/rv_zk/rv_zbkb 2.384e-07
rv_zicbo 2.98e-08
rv_system 4.657e-10
rv_zawrs 4.657e-10
rv_sdext 2.328e-10
rv_smrnmi 2.328e-10
rv_ssctr 2.328e-10
Total of 84.15% RISC-V encoding space is used
... 73.52% is RVC
... 10.63% is 32-bit instructions
42.51% of >= 32-bit encoding is used
48.58% of 32-bit encoding is used
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment