| # 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 |