VecFunctionUnit
- 版本:V2R2
- 状态:OK
- 日期:2025/01/20
- commit:xxx
向量功能单元包括 vsetiwi, vsetiwf, vsetfwf, vipu, vialuF, vfpu, vldu, vstu, vppu, vimac, vidiv, vfalu, vfma, vfdiv, vfcvt; 每个功能单元支持的指令如下表:
vsetiwi vsetiwf vsetfwf
vsetiwi, vsetiwf, vsetfwf 这三个功能单元是用以支持 vset(VSETVLI, VSETIVLI, VSETVL) 指令 uop 拆分的,具体拆分方式请参考 decode 。
vipu
vipu fu 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| vfdiv |
vfdiv.vv |
V |
vector |
| vfdiv |
vfsqrt.v |
V |
vector |
| vfdiv |
vfdiv.vf |
V |
vector |
| vfdiv |
vfrdiv.vf |
V |
vector |
vfcvt
vfcvt fu 支持的指令
| 功能单元 |
支持指令 |
扩展 |
描述 |
| 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 |