blob: bcca6bfe4fbac51894132d4e911717b6748e55d1 [file] [log] [blame]
# Configuration setting
# https://github.com/riscv/riscv-v-spec/blob/master/vcfg-format.adoc
vsetivli | r | zimm10 zimm rd | 11...............111.....1010111
vsetvli | r | zimm11 rs1 rd | 0................111.....1010111
vsetvl | r | rs2 rs1 rd | 1000000..........111.....1010111
#
# Vector Loads and Store
# https://github.com/riscv/riscv-v-spec/blob/master/vmem-format.adoc
#
# Vector Unit-Stride Instructions (including segment part)
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#74-vector-unit-stride-instructions
vlm.v | r | rs1 vd | 000000101011.....000.....0000111
vsm.v | r | rs1 vs3 | 000000101011.....000.....0100111
vle8.v | r | nf vm rs1 vd | ...000.00000.....000.....0000111
vle16.v | r | nf vm rs1 vd | ...000.00000.....101.....0000111
vle32.v | r | nf vm rs1 vd | ...000.00000.....110.....0000111
vle64.v | r | nf vm rs1 vd | ...000.00000.....111.....0000111
vse8.v | r | nf vm rs1 vs3 | ...000.00000.....000.....0100111
vse16.v | r | nf vm rs1 vs3 | ...000.00000.....101.....0100111
vse32.v | r | nf vm rs1 vs3 | ...000.00000.....110.....0100111
vse64.v | r | nf vm rs1 vs3 | ...000.00000.....111.....0100111
# Vector Indexed-Unordered Instructions (including segment part)
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#76-vector-indexed-instructions
vluxei8.v | r | nf vm vs2 rs1 vd | ...001...........000.....0000111
vluxei16.v | r | nf vm vs2 rs1 vd | ...001...........101.....0000111
vluxei32.v | r | nf vm vs2 rs1 vd | ...001...........110.....0000111
vluxei64.v | r | nf vm vs2 rs1 vd | ...001...........111.....0000111
vsuxei8.v | r | nf vm vs2 rs1 vs3 | ...001...........000.....0100111
vsuxei16.v | r | nf vm vs2 rs1 vs3 | ...001...........101.....0100111
vsuxei32.v | r | nf vm vs2 rs1 vs3 | ...001...........110.....0100111
vsuxei64.v | r | nf vm vs2 rs1 vs3 | ...001...........111.....0100111
# Vector Strided Instructions (including segment part)
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#75-vector-strided-instructions
vlse8.v | r | nf vm rs2 rs1 vd | ...010...........000.....0000111
vlse16.v | r | nf vm rs2 rs1 vd | ...010...........101.....0000111
vlse32.v | r | nf vm rs2 rs1 vd | ...010...........110.....0000111
vlse64.v | r | nf vm rs2 rs1 vd | ...010...........111.....0000111
vsse8.v | r | nf vm rs2 rs1 vs3 | ...010...........000.....0100111
vsse16.v | r | nf vm rs2 rs1 vs3 | ...010...........101.....0100111
vsse32.v | r | nf vm rs2 rs1 vs3 | ...010...........110.....0100111
vsse64.v | r | nf vm rs2 rs1 vs3 | ...010...........111.....0100111
# Vector Indexed-Ordered Instructions (including segment part)
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#76-vector-indexed-instructions
vloxei8.v | r | nf vm vs2 rs1 vd | ...011...........000.....0000111
vloxei16.v | r | nf vm vs2 rs1 vd | ...011...........101.....0000111
vloxei32.v | r | nf vm vs2 rs1 vd | ...011...........110.....0000111
vloxei64.v | r | nf vm vs2 rs1 vd | ...011...........111.....0000111
vsoxei8.v | r | nf vm vs2 rs1 vs3 | ...011...........000.....0100111
vsoxei16.v | r | nf vm vs2 rs1 vs3 | ...011...........101.....0100111
vsoxei32.v | r | nf vm vs2 rs1 vs3 | ...011...........110.....0100111
vsoxei64.v | r | nf vm vs2 rs1 vs3 | ...011...........111.....0100111
# Unit-stride F31..29=0ault-Only-First Loads
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#77-unit-stride-fault-only-first-loads
vle8ff.v | r | nf vm rs1 vd | ...000.10000.....000.....0000111
vle16ff.v | r | nf vm rs1 vd | ...000.10000.....101.....0000111
vle32ff.v | r | nf vm rs1 vd | ...000.10000.....110.....0000111
vle64ff.v | r | nf vm rs1 vd | ...000.10000.....111.....0000111
# Vector Load/Store Whole Registers
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#79-vector-loadstore-whole-register-instructions
vl1re8.v | r | rs1 vd | 000000101000.....000.....0000111
vl1re16.v | r | rs1 vd | 000000101000.....101.....0000111
vl1re32.v | r | rs1 vd | 000000101000.....110.....0000111
vl1re64.v | r | rs1 vd | 000000101000.....111.....0000111
vl2re8.v | r | rs1 vd | 001000101000.....000.....0000111
vl2re16.v | r | rs1 vd | 001000101000.....101.....0000111
vl2re32.v | r | rs1 vd | 001000101000.....110.....0000111
vl2re64.v | r | rs1 vd | 001000101000.....111.....0000111
vl4re8.v | r | rs1 vd | 011000101000.....000.....0000111
vl4re16.v | r | rs1 vd | 011000101000.....101.....0000111
vl4re32.v | r | rs1 vd | 011000101000.....110.....0000111
vl4re64.v | r | rs1 vd | 011000101000.....111.....0000111
vl8re8.v | r | rs1 vd | 111000101000.....000.....0000111
vl8re16.v | r | rs1 vd | 111000101000.....101.....0000111
vl8re32.v | r | rs1 vd | 111000101000.....110.....0000111
vl8re64.v | r | rs1 vd | 111000101000.....111.....0000111
vs1r.v | r | rs1 vs3 | 000000101000.....000.....0100111
vs2r.v | r | rs1 vs3 | 001000101000.....000.....0100111
vs4r.v | r | rs1 vs3 | 011000101000.....000.....0100111
vs8r.v | r | rs1 vs3 | 111000101000.....000.....0100111
# Vector Floating-Point Instructions
# https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#14-vector-floating-point-instructions
# OPFVF
vfadd.vf | r | vm vs2 rs1 vd | 000000...........101.....1010111
vfsub.vf | r | vm vs2 rs1 vd | 000010...........101.....1010111
vfmin.vf | r | vm vs2 rs1 vd | 000100...........101.....1010111
vfmax.vf | r | vm vs2 rs1 vd | 000110...........101.....1010111
vfsgnj.vf | r | vm vs2 rs1 vd | 001000...........101.....1010111
vfsgnjn.vf | r | vm vs2 rs1 vd | 001001...........101.....1010111
vfsgnjx.vf | r | vm vs2 rs1 vd | 001010...........101.....1010111
vfslide1up.vf | r | vm vs2 rs1 vd | 001110...........101.....1010111
vfslide1down.vf | r | vm vs2 rs1 vd | 001111...........101.....1010111
vfmv.s.f | r | rs1 vd | 010000100000.....101.....1010111
vfmerge.vfm | r | vs2 rs1 vd | 0101110..........101.....1010111
vfmv.v.f | r | rs1 vd | 010111100000.....101.....1010111
vmfeq.vf | r | vm vs2 rs1 vd | 011000...........101.....1010111
vmfle.vf | r | vm vs2 rs1 vd | 011001...........101.....1010111
vmflt.vf | r | vm vs2 rs1 vd | 011011...........101.....1010111
vmfne.vf | r | vm vs2 rs1 vd | 011100...........101.....1010111
vmfgt.vf | r | vm vs2 rs1 vd | 011101...........101.....1010111
vmfge.vf | r | vm vs2 rs1 vd | 011111...........101.....1010111
vfdiv.vf | r | vm vs2 rs1 vd | 100000...........101.....1010111
vfrdiv.vf | r | vm vs2 rs1 vd | 100001...........101.....1010111
vfmul.vf | r | vm vs2 rs1 vd | 100100...........101.....1010111
vfrsub.vf | r | vm vs2 rs1 vd | 100111...........101.....1010111
vfmadd.vf | r | vm vs2 rs1 vd | 101000...........101.....1010111
vfnmadd.vf | r | vm vs2 rs1 vd | 101001...........101.....1010111
vfmsub.vf | r | vm vs2 rs1 vd | 101010...........101.....1010111
vfnmsub.vf | r | vm vs2 rs1 vd | 101011...........101.....1010111
vfmacc.vf | r | vm vs2 rs1 vd | 101100...........101.....1010111
vfnmacc.vf | r | vm vs2 rs1 vd | 101101...........101.....1010111
vfmsac.vf | r | vm vs2 rs1 vd | 101110...........101.....1010111
vfnmsac.vf | r | vm vs2 rs1 vd | 101111...........101.....1010111
vfwadd.vf | r | vm vs2 rs1 vd | 110000...........101.....1010111
vfwsub.vf | r | vm vs2 rs1 vd | 110010...........101.....1010111
vfwadd.wf | r | vm vs2 rs1 vd | 110100...........101.....1010111
vfwsub.wf | r | vm vs2 rs1 vd | 110110...........101.....1010111
vfwmul.vf | r | vm vs2 rs1 vd | 111000...........101.....1010111
vfwmacc.vf | r | vm vs2 rs1 vd | 111100...........101.....1010111
vfwnmacc.vf | r | vm vs2 rs1 vd | 111101...........101.....1010111
vfwmsac.vf | r | vm vs2 rs1 vd | 111110...........101.....1010111
vfwnmsac.vf | r | vm vs2 rs1 vd | 111111...........101.....1010111
# OPFVV
vfadd.vv | r | vm vs2 vs1 vd | 000000...........001.....1010111
vfredusum.vs | r | vm vs2 vs1 vd | 000001...........001.....1010111
vfsub.vv | r | vm vs2 vs1 vd | 000010...........001.....1010111
vfredosum.vs | r | vm vs2 vs1 vd | 000011...........001.....1010111
vfmin.vv | r | vm vs2 vs1 vd | 000100...........001.....1010111
vfredmin.vs | r | vm vs2 vs1 vd | 000101...........001.....1010111
vfmax.vv | r | vm vs2 vs1 vd | 000110...........001.....1010111
vfredmax.vs | r | vm vs2 vs1 vd | 000111...........001.....1010111
vfsgnj.vv | r | vm vs2 vs1 vd | 001000...........001.....1010111
vfsgnjn.vv | r | vm vs2 vs1 vd | 001001...........001.....1010111
vfsgnjx.vv | r | vm vs2 vs1 vd | 001010...........001.....1010111
vfmv.f.s | r | vs2 rd | 0100001.....00000001.....1010111
vmfeq.vv | r | vm vs2 vs1 vd | 011000...........001.....1010111
vmfle.vv | r | vm vs2 vs1 vd | 011001...........001.....1010111
vmflt.vv | r | vm vs2 vs1 vd | 011011...........001.....1010111
vmfne.vv | r | vm vs2 vs1 vd | 011100...........001.....1010111
vfdiv.vv | r | vm vs2 vs1 vd | 100000...........001.....1010111
vfmul.vv | r | vm vs2 vs1 vd | 100100...........001.....1010111
vfmadd.vv | r | vm vs2 vs1 vd | 101000...........001.....1010111
vfnmadd.vv | r | vm vs2 vs1 vd | 101001...........001.....1010111
vfmsub.vv | r | vm vs2 vs1 vd | 101010...........001.....1010111
vfnmsub.vv | r | vm vs2 vs1 vd | 101011...........001.....1010111
vfmacc.vv | r | vm vs2 vs1 vd | 101100...........001.....1010111
vfnmacc.vv | r | vm vs2 vs1 vd | 101101...........001.....1010111
vfmsac.vv | r | vm vs2 vs1 vd | 101110...........001.....1010111
vfnmsac.vv | r | vm vs2 vs1 vd | 101111...........001.....1010111
vfcvt.xu.f.v | r | vm vs2 vd | 010010......00000001.....1010111
vfcvt.x.f.v | r | vm vs2 vd | 010010......00001001.....1010111
vfcvt.f.xu.v | r | vm vs2 vd | 010010......00010001.....1010111
vfcvt.f.x.v | r | vm vs2 vd | 010010......00011001.....1010111
vfcvt.rtz.xu.f.v | r | vm vs2 vd | 010010......00110001.....1010111
vfcvt.rtz.x.f.v | r | vm vs2 vd | 010010......00111001.....1010111
vfwcvt.xu.f.v | r | vm vs2 vd | 010010......01000001.....1010111
vfwcvt.x.f.v | r | vm vs2 vd | 010010......01001001.....1010111
vfwcvt.f.xu.v | r | vm vs2 vd | 010010......01010001.....1010111
vfwcvt.f.x.v | r | vm vs2 vd | 010010......01011001.....1010111
vfwcvt.f.f.v | r | vm vs2 vd | 010010......01100001.....1010111
vfwcvt.rtz.xu.f.v | r | vm vs2 vd | 010010......01110001.....1010111
vfwcvt.rtz.x.f.v | r | vm vs2 vd | 010010......01111001.....1010111
vfncvt.xu.f.w | r | vm vs2 vd | 010010......10000001.....1010111
vfncvt.x.f.w | r | vm vs2 vd | 010010......10001001.....1010111
vfncvt.f.xu.w | r | vm vs2 vd | 010010......10010001.....1010111
vfncvt.f.x.w | r | vm vs2 vd | 010010......10011001.....1010111
vfncvt.f.f.w | r | vm vs2 vd | 010010......10100001.....1010111
vfncvt.rod.f.f.w | r | vm vs2 vd | 010010......10101001.....1010111
vfncvt.rtz.xu.f.w | r | vm vs2 vd | 010010......10110001.....1010111
vfncvt.rtz.x.f.w | r | vm vs2 vd | 010010......10111001.....1010111
vfsqrt.v | r | vm vs2 vd | 010011......00000001.....1010111
vfrsqrt7.v | r | vm vs2 vd | 010011......00100001.....1010111
vfrec7.v | r | vm vs2 vd | 010011......00101001.....1010111
vfclass.v | r | vm vs2 vd | 010011......10000001.....1010111
vfwadd.vv | r | vm vs2 vs1 vd | 110000...........001.....1010111
vfwredusum.vs | r | vm vs2 vs1 vd | 110001...........001.....1010111
vfwsub.vv | r | vm vs2 vs1 vd | 110010...........001.....1010111
vfwredosum.vs | r | vm vs2 vs1 vd | 110011...........001.....1010111
vfwadd.wv | r | vm vs2 vs1 vd | 110100...........001.....1010111
vfwsub.wv | r | vm vs2 vs1 vd | 110110...........001.....1010111
vfwmul.vv | r | vm vs2 vs1 vd | 111000...........001.....1010111
vfwmacc.vv | r | vm vs2 vs1 vd | 111100...........001.....1010111
vfwnmacc.vv | r | vm vs2 vs1 vd | 111101...........001.....1010111
vfwmsac.vv | r | vm vs2 vs1 vd | 111110...........001.....1010111
vfwnmsac.vv | r | vm vs2 vs1 vd | 111111...........001.....1010111
# OPIVX
vadd.vx | r | vm vs2 rs1 vd | 000000...........100.....1010111
vsub.vx | r | vm vs2 rs1 vd | 000010...........100.....1010111
vrsub.vx | r | vm vs2 rs1 vd | 000011...........100.....1010111
vminu.vx | r | vm vs2 rs1 vd | 000100...........100.....1010111
vmin.vx | r | vm vs2 rs1 vd | 000101...........100.....1010111
vmaxu.vx | r | vm vs2 rs1 vd | 000110...........100.....1010111
vmax.vx | r | vm vs2 rs1 vd | 000111...........100.....1010111
vand.vx | r | vm vs2 rs1 vd | 001001...........100.....1010111
vor.vx | r | vm vs2 rs1 vd | 001010...........100.....1010111
vxor.vx | r | vm vs2 rs1 vd | 001011...........100.....1010111
vrgather.vx | r | vm vs2 rs1 vd | 001100...........100.....1010111
vslideup.vx | r | vm vs2 rs1 vd | 001110...........100.....1010111
vslidedown.vx | r | vm vs2 rs1 vd | 001111...........100.....1010111
vadc.vxm | r | vs2 rs1 vd | 0100000..........100.....1010111
vmadc.vxm | r | vs2 rs1 vd | 0100010..........100.....1010111
vmadc.vx | r | vs2 rs1 vd | 0100011..........100.....1010111
vsbc.vxm | r | vs2 rs1 vd | 0100100..........100.....1010111
vmsbc.vxm | r | vs2 rs1 vd | 0100110..........100.....1010111
vmsbc.vx | r | vs2 rs1 vd | 0100111..........100.....1010111
vmerge.vxm | r | vs2 rs1 vd | 0101110..........100.....1010111
vmv.v.x | r | rs1 vd | 010111100000.....100.....1010111
vmseq.vx | r | vm vs2 rs1 vd | 011000...........100.....1010111
vmsne.vx | r | vm vs2 rs1 vd | 011001...........100.....1010111
vmsltu.vx | r | vm vs2 rs1 vd | 011010...........100.....1010111
vmslt.vx | r | vm vs2 rs1 vd | 011011...........100.....1010111
vmsleu.vx | r | vm vs2 rs1 vd | 011100...........100.....1010111
vmsle.vx | r | vm vs2 rs1 vd | 011101...........100.....1010111
vmsgtu.vx | r | vm vs2 rs1 vd | 011110...........100.....1010111
vmsgt.vx | r | vm vs2 rs1 vd | 011111...........100.....1010111
vsaddu.vx | r | vm vs2 rs1 vd | 100000...........100.....1010111
vsadd.vx | r | vm vs2 rs1 vd | 100001...........100.....1010111
vssubu.vx | r | vm vs2 rs1 vd | 100010...........100.....1010111
vssub.vx | r | vm vs2 rs1 vd | 100011...........100.....1010111
vsll.vx | r | vm vs2 rs1 vd | 100101...........100.....1010111
vsmul.vx | r | vm vs2 rs1 vd | 100111...........100.....1010111
vsrl.vx | r | vm vs2 rs1 vd | 101000...........100.....1010111
vsra.vx | r | vm vs2 rs1 vd | 101001...........100.....1010111
vssrl.vx | r | vm vs2 rs1 vd | 101010...........100.....1010111
vssra.vx | r | vm vs2 rs1 vd | 101011...........100.....1010111
vnsrl.wx | r | vm vs2 rs1 vd | 101100...........100.....1010111
vnsra.wx | r | vm vs2 rs1 vd | 101101...........100.....1010111
vnclipu.wx | r | vm vs2 rs1 vd | 101110...........100.....1010111
vnclip.wx | r | vm vs2 rs1 vd | 101111...........100.....1010111
# OPIVV
vadd.vv | r | vm vs2 vs1 vd | 000000...........000.....1010111
vsub.vv | r | vm vs2 vs1 vd | 000010...........000.....1010111
vminu.vv | r | vm vs2 vs1 vd | 000100...........000.....1010111
vmin.vv | r | vm vs2 vs1 vd | 000101...........000.....1010111
vmaxu.vv | r | vm vs2 vs1 vd | 000110...........000.....1010111
vmax.vv | r | vm vs2 vs1 vd | 000111...........000.....1010111
vand.vv | r | vm vs2 vs1 vd | 001001...........000.....1010111
vor.vv | r | vm vs2 vs1 vd | 001010...........000.....1010111
vxor.vv | r | vm vs2 vs1 vd | 001011...........000.....1010111
vrgather.vv | r | vm vs2 vs1 vd | 001100...........000.....1010111
vrgatherei16.vv | r | vm vs2 vs1 vd | 001110...........000.....1010111
vadc.vvm | r | vs2 vs1 vd | 0100000..........000.....1010111
vmadc.vvm | r | vs2 vs1 vd | 0100010..........000.....1010111
vmadc.vv | r | vs2 vs1 vd | 0100011..........000.....1010111
vsbc.vvm | r | vs2 vs1 vd | 0100100..........000.....1010111
vmsbc.vvm | r | vs2 vs1 vd | 0100110..........000.....1010111
vmsbc.vv | r | vs2 vs1 vd | 0100111..........000.....1010111
vmerge.vvm | r | vs2 vs1 vd | 0101110..........000.....1010111
vmv.v.v | r | vs1 vd | 010111100000.....000.....1010111
vmseq.vv | r | vm vs2 vs1 vd | 011000...........000.....1010111
vmsne.vv | r | vm vs2 vs1 vd | 011001...........000.....1010111
vmsltu.vv | r | vm vs2 vs1 vd | 011010...........000.....1010111
vmslt.vv | r | vm vs2 vs1 vd | 011011...........000.....1010111
vmsleu.vv | r | vm vs2 vs1 vd | 011100...........000.....1010111
vmsle.vv | r | vm vs2 vs1 vd | 011101...........000.....1010111
vsaddu.vv | r | vm vs2 vs1 vd | 100000...........000.....1010111
vsadd.vv | r | vm vs2 vs1 vd | 100001...........000.....1010111
vssubu.vv | r | vm vs2 vs1 vd | 100010...........000.....1010111
vssub.vv | r | vm vs2 vs1 vd | 100011...........000.....1010111
vsll.vv | r | vm vs2 vs1 vd | 100101...........000.....1010111
vsmul.vv | r | vm vs2 vs1 vd | 100111...........000.....1010111
vsrl.vv | r | vm vs2 vs1 vd | 101000...........000.....1010111
vsra.vv | r | vm vs2 vs1 vd | 101001...........000.....1010111
vssrl.vv | r | vm vs2 vs1 vd | 101010...........000.....1010111
vssra.vv | r | vm vs2 vs1 vd | 101011...........000.....1010111
vnsrl.wv | r | vm vs2 vs1 vd | 101100...........000.....1010111
vnsra.wv | r | vm vs2 vs1 vd | 101101...........000.....1010111
vnclipu.wv | r | vm vs2 vs1 vd | 101110...........000.....1010111
vnclip.wv | r | vm vs2 vs1 vd | 101111...........000.....1010111
vwredsumu.vs | r | vm vs2 vs1 vd | 110000...........000.....1010111
vwredsum.vs | r | vm vs2 vs1 vd | 110001...........000.....1010111
# OPIVI
vadd.vi | r | vm vs2 simm5 vd | 000000...........011.....1010111
vrsub.vi | r | vm vs2 simm5 vd | 000011...........011.....1010111
vand.vi | r | vm vs2 simm5 vd | 001001...........011.....1010111
vor.vi | r | vm vs2 simm5 vd | 001010...........011.....1010111
vxor.vi | r | vm vs2 simm5 vd | 001011...........011.....1010111
vrgather.vi | r | vm vs2 simm5 vd | 001100...........011.....1010111
vslideup.vi | r | vm vs2 simm5 vd | 001110...........011.....1010111
vslidedown.vi | r | vm vs2 simm5 vd | 001111...........011.....1010111
vadc.vim | r | vs2 simm5 vd | 0100000..........011.....1010111
vmadc.vim | r | vs2 simm5 vd | 0100010..........011.....1010111
vmadc.vi | r | vs2 simm5 vd | 0100011..........011.....1010111
vmerge.vim | r | vs2 simm5 vd | 0101110..........011.....1010111
vmv.v.i | r | simm5 vd | 010111100000.....011.....1010111
vmseq.vi | r | vm vs2 simm5 vd | 011000...........011.....1010111
vmsne.vi | r | vm vs2 simm5 vd | 011001...........011.....1010111
vmsleu.vi | r | vm vs2 simm5 vd | 011100...........011.....1010111
vmsle.vi | r | vm vs2 simm5 vd | 011101...........011.....1010111
vmsgtu.vi | r | vm vs2 simm5 vd | 011110...........011.....1010111
vmsgt.vi | r | vm vs2 simm5 vd | 011111...........011.....1010111
vsaddu.vi | r | vm vs2 simm5 vd | 100000...........011.....1010111
vsadd.vi | r | vm vs2 simm5 vd | 100001...........011.....1010111
vsll.vi | r | vm vs2 simm5 vd | 100101...........011.....1010111
vmv1r.v | r | vs2 vd | 1001111.....00000011.....1010111
vmv2r.v | r | vs2 vd | 1001111.....00001011.....1010111
vmv4r.v | r | vs2 vd | 1001111.....00011011.....1010111
vmv8r.v | r | vs2 vd | 1001111.....00111011.....1010111
vsrl.vi | r | vm vs2 simm5 vd | 101000...........011.....1010111
vsra.vi | r | vm vs2 simm5 vd | 101001...........011.....1010111
vssrl.vi | r | vm vs2 simm5 vd | 101010...........011.....1010111
vssra.vi | r | vm vs2 simm5 vd | 101011...........011.....1010111
vnsrl.wi | r | vm vs2 simm5 vd | 101100...........011.....1010111
vnsra.wi | r | vm vs2 simm5 vd | 101101...........011.....1010111
vnclipu.wi | r | vm vs2 simm5 vd | 101110...........011.....1010111
vnclip.wi | r | vm vs2 simm5 vd | 101111...........011.....1010111
# OPMVV
vredsum.vs | r | vm vs2 vs1 vd | 000000...........010.....1010111
vredand.vs | r | vm vs2 vs1 vd | 000001...........010.....1010111
vredor.vs | r | vm vs2 vs1 vd | 000010...........010.....1010111
vredxor.vs | r | vm vs2 vs1 vd | 000011...........010.....1010111
vredminu.vs | r | vm vs2 vs1 vd | 000100...........010.....1010111
vredmin.vs | r | vm vs2 vs1 vd | 000101...........010.....1010111
vredmaxu.vs | r | vm vs2 vs1 vd | 000110...........010.....1010111
vredmax.vs | r | vm vs2 vs1 vd | 000111...........010.....1010111
vaaddu.vv | r | vm vs2 vs1 vd | 001000...........010.....1010111
vaadd.vv | r | vm vs2 vs1 vd | 001001...........010.....1010111
vasubu.vv | r | vm vs2 vs1 vd | 001010...........010.....1010111
vasub.vv | r | vm vs2 vs1 vd | 001011...........010.....1010111
vmv.x.s | r | vs2 rd | 0100001.....00000010.....1010111
# Vector Integer Extension Instructions
# https://github.com/riscv/riscv-v-spec/blob/e49574c92b072fd4d71e6cb20f7e8154de5b83fe/v-spec.adoc#123-vector-integer-extension
vzext.vf8 | r | vm vs2 vd | 010010......00010010.....1010111
vsext.vf8 | r | vm vs2 vd | 010010......00011010.....1010111
vzext.vf4 | r | vm vs2 vd | 010010......00100010.....1010111
vsext.vf4 | r | vm vs2 vd | 010010......00101010.....1010111
vzext.vf2 | r | vm vs2 vd | 010010......00110010.....1010111
vsext.vf2 | r | vm vs2 vd | 010010......00111010.....1010111
vcompress.vm | r | vs2 vs1 vd | 0101111..........010.....1010111
vmandn.mm | r | vs2 vs1 vd | 0110001..........010.....1010111
vmand.mm | r | vs2 vs1 vd | 0110011..........010.....1010111
vmor.mm | r | vs2 vs1 vd | 0110101..........010.....1010111
vmxor.mm | r | vs2 vs1 vd | 0110111..........010.....1010111
vmorn.mm | r | vs2 vs1 vd | 0111001..........010.....1010111
vmnand.mm | r | vs2 vs1 vd | 0111011..........010.....1010111
vmnor.mm | r | vs2 vs1 vd | 0111101..........010.....1010111
vmxnor.mm | r | vs2 vs1 vd | 0111111..........010.....1010111
vmsbf.m | r | vm vs2 vd | 010100......00001010.....1010111
vmsof.m | r | vm vs2 vd | 010100......00010010.....1010111
vmsif.m | r | vm vs2 vd | 010100......00011010.....1010111
viota.m | r | vm vs2 vd | 010100......10000010.....1010111
vid.v | r | vm vd | 010100.0000010001010.....1010111
vcpop.m | r | vm vs2 rd | 010000......10000010.....1010111
vfirst.m | r | vm vs2 rd | 010000......10001010.....1010111
vdivu.vv | r | vm vs2 vs1 vd | 100000...........010.....1010111
vdiv.vv | r | vm vs2 vs1 vd | 100001...........010.....1010111
vremu.vv | r | vm vs2 vs1 vd | 100010...........010.....1010111
vrem.vv | r | vm vs2 vs1 vd | 100011...........010.....1010111
vmulhu.vv | r | vm vs2 vs1 vd | 100100...........010.....1010111
vmul.vv | r | vm vs2 vs1 vd | 100101...........010.....1010111
vmulhsu.vv | r | vm vs2 vs1 vd | 100110...........010.....1010111
vmulh.vv | r | vm vs2 vs1 vd | 100111...........010.....1010111
vmadd.vv | r | vm vs2 vs1 vd | 101001...........010.....1010111
vnmsub.vv | r | vm vs2 vs1 vd | 101011...........010.....1010111
vmacc.vv | r | vm vs2 vs1 vd | 101101...........010.....1010111
vnmsac.vv | r | vm vs2 vs1 vd | 101111...........010.....1010111
vwaddu.vv | r | vm vs2 vs1 vd | 110000...........010.....1010111
vwadd.vv | r | vm vs2 vs1 vd | 110001...........010.....1010111
vwsubu.vv | r | vm vs2 vs1 vd | 110010...........010.....1010111
vwsub.vv | r | vm vs2 vs1 vd | 110011...........010.....1010111
vwaddu.wv | r | vm vs2 vs1 vd | 110100...........010.....1010111
vwadd.wv | r | vm vs2 vs1 vd | 110101...........010.....1010111
vwsubu.wv | r | vm vs2 vs1 vd | 110110...........010.....1010111
vwsub.wv | r | vm vs2 vs1 vd | 110111...........010.....1010111
vwmulu.vv | r | vm vs2 vs1 vd | 111000...........010.....1010111
vwmulsu.vv | r | vm vs2 vs1 vd | 111010...........010.....1010111
vwmul.vv | r | vm vs2 vs1 vd | 111011...........010.....1010111
vwmaccu.vv | r | vm vs2 vs1 vd | 111100...........010.....1010111
vwmacc.vv | r | vm vs2 vs1 vd | 111101...........010.....1010111
vwmaccsu.vv | r | vm vs2 vs1 vd | 111111...........010.....1010111
# OPMVX
vaaddu.vx | r | vm vs2 rs1 vd | 001000...........110.....1010111
vaadd.vx | r | vm vs2 rs1 vd | 001001...........110.....1010111
vasubu.vx | r | vm vs2 rs1 vd | 001010...........110.....1010111
vasub.vx | r | vm vs2 rs1 vd | 001011...........110.....1010111
vmv.s.x | r | rs1 vd | 010000100000.....110.....1010111
vslide1up.vx | r | vm vs2 rs1 vd | 001110...........110.....1010111
vslide1down.vx | r | vm vs2 rs1 vd | 001111...........110.....1010111
vdivu.vx | r | vm vs2 rs1 vd | 100000...........110.....1010111
vdiv.vx | r | vm vs2 rs1 vd | 100001...........110.....1010111
vremu.vx | r | vm vs2 rs1 vd | 100010...........110.....1010111
vrem.vx | r | vm vs2 rs1 vd | 100011...........110.....1010111
vmulhu.vx | r | vm vs2 rs1 vd | 100100...........110.....1010111
vmul.vx | r | vm vs2 rs1 vd | 100101...........110.....1010111
vmulhsu.vx | r | vm vs2 rs1 vd | 100110...........110.....1010111
vmulh.vx | r | vm vs2 rs1 vd | 100111...........110.....1010111
vmadd.vx | r | vm vs2 rs1 vd | 101001...........110.....1010111
vnmsub.vx | r | vm vs2 rs1 vd | 101011...........110.....1010111
vmacc.vx | r | vm vs2 rs1 vd | 101101...........110.....1010111
vnmsac.vx | r | vm vs2 rs1 vd | 101111...........110.....1010111
vwaddu.vx | r | vm vs2 rs1 vd | 110000...........110.....1010111
vwadd.vx | r | vm vs2 rs1 vd | 110001...........110.....1010111
vwsubu.vx | r | vm vs2 rs1 vd | 110010...........110.....1010111
vwsub.vx | r | vm vs2 rs1 vd | 110011...........110.....1010111
vwaddu.wx | r | vm vs2 rs1 vd | 110100...........110.....1010111
vwadd.wx | r | vm vs2 rs1 vd | 110101...........110.....1010111
vwsubu.wx | r | vm vs2 rs1 vd | 110110...........110.....1010111
vwsub.wx | r | vm vs2 rs1 vd | 110111...........110.....1010111
vwmulu.vx | r | vm vs2 rs1 vd | 111000...........110.....1010111
vwmulsu.vx | r | vm vs2 rs1 vd | 111010...........110.....1010111
vwmul.vx | r | vm vs2 rs1 vd | 111011...........110.....1010111
vwmaccu.vx | r | vm vs2 rs1 vd | 111100...........110.....1010111
vwmacc.vx | r | vm vs2 rs1 vd | 111101...........110.....1010111
vwmaccus.vx | r | vm vs2 rs1 vd | 111110...........110.....1010111
vwmaccsu.vx | r | vm vs2 rs1 vd | 111111...........110.....1010111