跳转至

VecFunctionUnit

  • Version: V2R2
  • Status: OK
  • Date: 2025/01/20
  • commit: xxx

The vector functional units include vsetiwi, vsetiwf, vsetfwf, vipu, vialuF, vfpu, vldu, vstu, vppu, vimac, vidiv, vfalu, vfma, vfdiv, vfcvt; the instructions supported by each functional unit are listed in the table below:

vsetiwi vsetiwf vsetfwf

The three functional units vsetiwi, vsetiwf, and vsetfwf are used to support the uop splitting of vset (VSETVLI, VSETIVLI, VSETVL) instructions. Please refer to the decode documentation for the specific splitting method.

vipu

vipu fu supported instructions
Function Unit Supported Instruction Extension Description
vipu vwredsumu.vs V vector
vipu vwredsum.vs V vector
vipu vcpop.m V vector
vipu vfirst.m V vector
vipu vid.v V vector
vipu viota.m V vector
vipu vmsbf.vv V vector
vipu vmsif.vv V vector
vipu vmsof.vv V vector
vipu vmv.x.s V vector
vipu vredand.vs V vector
vipu vredmax.vs V vector
vipu vredmaxu.vs V vector
vipu vredmin.vs V vector
vipu vredminu.vs V vector
vipu vredor.vs V vector
vipu vredsum.vs V vector
vipu vredxor.vs V vector

vialuF

vialuF fu supported instructions
Function Unit Supported Instruction Extension Description
vialuF vadd.vv V vector
vialuF vsub.vv V vector
vialuF vminu.vv V vector
vialuF vmin.vv V vector
vialuF vmaxu.vv V vector
vialuF vmax.vv V vector
vialuF vand.vv V vector
vialuF vor.vv V vector
vialuF vxor.vv V vector
vialuF vadc.vvm V vector
vialuF vmadc.vvm V vector
vialuF vmadc.vv V vector
vialuF vsbc.vvm V vector
vialuF vmsbc.vv V vector
vialuF vmsbc.vvm V vector
vialuF vmerge.vvm V vector
vialuF vmv.v.v V vector
vialuF vmseq.vv V vector
vialuF vmsne.vv V vector
vialuF vmsltu.vv V vector
vialuF vmslt.vv V vector
vialuF vmsleu.vv V vector
vialuF vmsle.vv V vector
vialuF vsll.vv V vector
vialuF vsrl.vv V vector
vialuF vsra.vv V vector
vialuF vnsrl.wv V vector
vialuF vnsra.wv V vector
vialuF vsaddu.vv V vector
vialuF vsadd.vv V vector
vialuF vssubu.vv V vector
vialuF vssub.vv V vector
vialuF vssrl.vv V vector
vialuF vssra.vv V vector
vialuF vnclipu.wv V vector
vialuF vnclip.wv V vector
vialuF vwredsumu.vs V vector
vialuF vwredsum.vs V vector
vialuF vandn.vv V vector
vialuF vrol.vv V vector
vialuF vror.vv V vector
vialuF vwsll.vv V vector
vialuF vadd.vx V vector
vialuF vsub.vx V vector
vialuF vrsub.vx V vector
vialuF vminu.vx V vector
vialuF vmin.vx V vector
vialuF vmaxu.vx V vector
vialuF vmax.vx V vector
vialuF vand.vx V vector
vialuF vor.vx V vector
vialuF vxor.vx V vector
vialuF vadc.vxm V vector
vialuF vmadc.vxm V vector
vialuF vmadc.vx V vector
vialuF vsbc.vxm V vector
vialuF vmsbc.vx V vector
vialuF vmsbc.vxm V vector
vialuF vmerge.vxm V vector
vialuF vmv.v.x V vector
vialuF vmseq.vx V vector
vialuF vmsne.vx V vector
vialuF vmsltu.vx V vector
vialuF vmslt.vx V vector
vialuF vmsleu.vx V vector
vialuF vmsle.vx V vector
vialuF vmsgtu.vx V vector
vialuF vmsgt.vx V vector
vialuF vsll.vx V vector
vialuF vsrl.vx V vector
vialuF vsra.vx V vector
vialuF vnsrl.wx V vector
vialuF vnsra.wx V vector
vialuF vsaddu.vx V vector
vialuF vsadd.vx V vector
vialuF vssubu.vx V vector
vialuF vssub.vx V vector
vialuF vssrl.vx V vector
vialuF vssra.vx V vector
vialuF vnclipu.wx V vector
vialuF vnclip.wx V vector
vialuF vandn.vx V vector
vialuF vrol.vx V vector
vialuF vror.vx V vector
vialuF vwsll.vx V vector
vialuF vadd.vi V vector
vialuF vrsub.vi V vector
vialuF vand.vi V vector
vialuF vor.vi V vector
vialuF vxor.vi V vector
vialuF vadc.vim V vector
vialuF vmadc.vim V vector
vialuF vmadc.vi V vector
vialuF vmerge.vim V vector
vialuF vmv.v.i V vector
vialuF vmseq.vi V vector
vialuF vmsne.vi V vector
vialuF vmsleu.vi V vector
vialuF vmsle.vi V vector
vialuF vmsgtu.vi V vector
vialuF vmsgt.vi V vector
vialuF vsll.vi V vector
vialuF vsrl.vi V vector
vialuF vsra.vi V vector
vialuF vnsrl.wi V vector
vialuF vnsra.wi V vector
vialuF vsaddu.vi V vector
vialuF vsadd.vi V vector
vialuF vssrl.vi V vector
vialuF vssra.vi V vector
vialuF vnclipu.wi V vector
vialuF vnclip.wi V vector
vialuF vror.vi V vector
vialuF vwsll.vi V vector
vialuF vaadd.vv V vector
vialuF vaaddu.vv V vector
vialuF vasub.vv V vector
vialuF vasubu.vv V vector
vialuF vmand.mm V vector
vialuF vmandn.mm V vector
vialuF vmnand.mm V vector
vialuF vmnor.mm V vector
vialuF vmor.mm V vector
vialuF vmorn.mm V vector
vialuF vmxnor.mm V vector
vialuF vmxor.mm V vector
vialuF vsext.vf2 V vector
vialuF vsext.vf4 V vector
vialuF vsext.vf8 V vector
vialuF vzext.vf2 V vector
vialuF vzext.vf4 V vector
vialuF vzext.vf8 V vector
vialuF vwadd.vv V vector
vialuF vwadd.wv V vector
vialuF vwaddu.vv V vector
vialuF vwaddu.wv V vector
vialuF vwsub.vv V vector
vialuF vwsub.wv V vector
vialuF vwsubu.vv V vector
vialuF vwsubu.wv V vector
vialuF vbrev.v V vector
vialuF vbrev8.v V vector
vialuF vrev8.v V vector
vialuF vclz.v V vector
vialuF vctz.v V vector
vialuF vcpop.v V vector
vialuF vaadd.vx V vector
vialuF vaaddu.vx V vector
vialuF vasub.vx V vector
vialuF vasubu.vx V vector
vialuF vmv.s.x V vector
vialuF vwadd.vx V vector
vialuF vwadd.wx V vector
vialuF vwaddu.vx V vector
vialuF vwaddu.wx V vector
vialuF vwsub.vx V vector
vialuF vwsub.wx V vector
vialuF vwsubu.vx V vector
vialuF vwsubu.wx V vector

vldu

vstu

vppu

vppu fu supported instructions
Function Unit Supported Instruction Extension Description
vppu vrgather.vv V vector
vppu vrgatherei16.vx V vector
vppu vrgather.vx V vector
vppu vslideup.vx V vector
vppu vslidedown.vx V vector
vppu vrgather.vi V vector
vppu vslideup.vi V vector
vppu vslidedown.vi V vector
vppu vmv1r.v V vector
vppu vmv2r.v V vector
vppu vmv4r.v V vector
vppu vmv8r.v V vector
vppu vcompress.vm V vector
vppu vslide1up.vx V vector
vppu vslide1down.vx V vector
vppu vfslide1up.vf V vector
vppu vfslide1down.vf V vector

vimac

vimac fu supported instructions
Function Unit Supported Instruction Extension Description
vimac vsmul.vv V vector
vimac vsmul.vx V vector
vimac vmacc.vv V vector
vimac vmadd.vv V vector
vimac vmul.vv V vector
vimac vmulh.vv V vector
vimac vmulhsu.vv V vector
vimac vmulhu.vv V vector
vimac vnmsac.vv V vector
vimac vnmsub.vv V vector
vimac vwmacc.vv V vector
vimac vwmaccsu.vv V vector
vimac vwmaccu.vv V vector
vimac vwmul.vv V vector
vimac vwmulsu.vv V vector
vimac vwmulu.vv V vector
vimac vmacc.vx V vector
vimac vmadd.vx V vector
vimac vmul.vx V vector
vimac vmulh.vx V vector
vimac vmulhsu.vx V vector
vimac vmulhu.vx V vector
vimac vnmsac.vx V vector
vimac vnmsub.vx V vector
vimac vwmacc.vx V vector
vimac vwmaccsu.vx V vector
vimac vwmaccu.vx V vector
vimac vwmaccus.vx V vector
vimac vwmul.vx V vector
vimac vwmulsu.vx V vector
vimac vwmulu.wx V vector

vidiv

vidiv fu supported instructions
Function Unit Supported Instruction Extension Description
vidiv vdiv.vv V vector
vidiv vdivu.vv V vector
vidiv vrem.vv V vector
vidiv vremu.vv V vector
vidiv vdiv.vx V vector
vidiv vdivu.vx V vector
vidiv vrem.vx V vector
vidiv vremu.vx V vector

vfalu

vfalu fu supported instructions
Function Unit Supported Instruction Extension Description
vfalu vfadd.vv V vector
vfalu vfsub.vv V vector
vfalu vfwadd.vv V vector
vfalu vfwsub.vv V vector
vfalu vfwadd.wv V vector
vfalu vfwsub.wv V vector
vfalu vfmin.vv V vector
vfalu vfmax.vv V vector
vfalu vfsgnj.vv V vector
vfalu vfsgnjn.vv V vector
vfalu vfsgnjx.vv V vector
vfalu vmfeq.vv V vector
vfalu vmfne.vv V vector
vfalu vmflt.vv V vector
vfalu vmfle.vv V vector
vfalu vfclass.v V vector
vfalu vfredosum.vs V vector
vfalu vfredusum.vs V vector
vfalu vfredmax.vs V vector
vfalu vfredmin.vs V vector
vfalu vfwredosum.vs V vector
vfalu vfwredusum.vs V vector
vfalu vfadd.vf V vector
vfalu vfsub.vf V vector
vfalu vfrsub.vf V vector
vfalu vfwadd.vf V vector
vfalu vfwsub.vf V vector
vfalu vfwadd.wf V vector
vfalu vfwsub.wf V vector
vfalu vfmin.vf V vector
vfalu vfmax.vf V vector
vfalu vfsgnj.vf V vector
vfalu vfsgnjn.vf V vector
vfalu vfsgnjx.vf V vector
vfalu vmfeq.vf V vector
vfalu vmfne.vf V vector
vfalu vmflt.vf V vector
vfalu vmfle.vf V vector
vfalu vmfgt.vf V vector
vfalu vmfge.vf V vector
vfalu vfmerge.vfm V vector
vfalu vfmv.v.f V vector
vfalu vfmv.f.s V vector
vfalu vfmv.s.f V vector

vfma

vfma fu supported instructions
Function Unit Supported Instruction Extension Description
vfma vfmul.vv V vector
vfma vfwmul.vv V vector
vfma vfmacc.vv V vector
vfma vfnmacc.vv V vector
vfma vfmsac.vv V vector
vfma vfnmsac.vv V vector
vfma vfmadd.vv V vector
vfma vfnmadd.vv V vector
vfma vfmsub.vv V vector
vfma vfnmsub.vv V vector
vfma vfwmacc.vv V vector
vfma vfwnmacc.vv V vector
vfma vfwmsac.vv V vector
vfma vfwnmsac.vv V vector
vfma vfmul.vf V vector
vfma vfwmul.vf V vector
vfma vfmacc.vf V vector
vfma vfnmacc.vf V vector
vfma vfmsac.vf V vector
vfma vfnmsac.vf V vector
vfma vfmadd.vf V vector
vfma vfnmadd.vf V vector
vfma vfmsub.vf V vector
vfma vfnmsub.vf V vector
vfma vfwmacc.vf V vector
vfma vfwnmacc.vf V vector
vfma vfwmsac.vf V vector
vfma vfwnmsac.vf V vector

vfdiv

vfdiv fu supported instructions
Function Unit Supported Instruction Extension Description
vfdiv vfdiv.vv V vector
vfdiv vfsqrt.v V vector
vfdiv vfdiv.vf V vector
vfdiv vfrdiv.vf V vector

vfcvt

vfcvt fu supported instructions
Function Unit Supported Instruction Extension Description
vfcvt vfrsqrt7.v V vector
vfcvt vfrec7.v V vector
vfcvt vfcvt.xu.f.v V vector
vfcvt vfcvt.x.f.v V vector
vfcvt vfcvt.rtz.xu.f.v V vector
vfcvt vfcvt.rtz.x.f.v V vector
vfcvt vfcvt.f.xu.v V vector
vfcvt vfwcvt.xu.f.v V vector
vfcvt vfwcvt.x.f.v V vector
vfcvt vfwcvt.rtz.xu.f.v V vector
vfcvt vfwcvt.rtz.x.f.v V vector
vfcvt vfwcvt.f.xu.v V vector
vfcvt vfwcvt.f.x.v V vector
vfcvt vfwcvt.f.f.v V vector
vfcvt vfncvt.xu.f.w V vector
vfcvt vfncvt.x.f.w V vector
vfcvt vfncvt.rtz.xu.f.w V vector
vfcvt vfncvt.rtz.x.f.w V vector
vfcvt vfncvt.f.xu.w V vector
vfcvt vfncvt.f.x.w V vector
vfcvt vfncvt.f.f.w V vector
vfcvt vfncvt.rod.f.f.w V vector