The integer functional units include jmp, brh, i2f, i2v, f2v, csr, alu, mul,
div, fence, bku; the instructions supported by each functional unit are listed
in the following table:
jmp
jmp fu supported instructions
Functional Unit
Supported Instructions
Extension
Description
jmp
AUIPC
I
scalar
jmp
JAL
I
scalar
jmp
JALR
I
scalar
brh
Instructions Supported by BRH FU
Functional Unit
Supported Instructions
Extension
Description
brh
BEQ
I
scalar
brh
BNE
I
scalar
brh
BGE
I
scalar
brh
BGEU
I
scalar
brh
BLT
I
scalar
brh
BLTU
I
scalar
i2f
i2f fu supported instructions
Functional Unit
Supported Instructions
Extension
Description
i2f
FCVT.S.W
F
scalar
i2f
FCVT.S.WU
F
scalar
i2f
FCVT.S.L
F
scalar
i2f
FCVT.S.LU
F
scalar
i2f
FCVT.D.W
D
scalar
i2f
FCVT.D.WU
D
scalar
i2f
FCVT.D.L
D
scalar
i2f
FCVT.D.LU
D
scalar
i2f
FCVT.H.W
Zfh
scalar
i2f
FCVT.H.WU
Zfh
scalar
i2f
FCVT.H.L
Zfh
scalar
i2f
FCVT.H.LU
Zfh
scalar
i2v
i2v fu supported instructions
Functional Unit
Supported Instructions
Extension
Description
i2v
FMV.D.X
D
scalar
i2v
FMV.W.X
F
scalar
i2v
FMV.H.X
Zfh
scalar
Additionally, as uops split from vector instructions (for specific splitting
methods, please refer to decode), the supported UopSplitType includes VSET,
VEC_0XV, VEC_VXV, VEC_VXW, VEC_WXW, VEC_WXV, VEC_VXM, VEC_SLIDE1UP,
VEC_SLIDE1DOWN, VEC_SLIDEUP, VEC_SLIDEDOWN, VEC_RGATHER_VX, VEC_US_LDST,
VEC_US_FF_LD, VEC_S_LDST, VEC_I_LDST. Supports:
integer to vector move
f2v
f2v fu supported instructions
Functional Unit
Supported Instructions
Extension
Description
f2v
FLI.H
I
zfa
f2v
FLI.S
I
zfa
f2v
FLI.D
I
zfa
Additionally, as uops split from vector instructions (for specific splitting
methods, refer to decode), the supported UopSplitTypes are VEC_VFV, VEC_0XV,
VEC_VFW, VEC_WFW, VEC_VFM, VEC_FSLIDE1UP, VEC_FSLIDE1DOWN. Supports: