The integer functional units include jmp, brh, i2f, i2v, f2v, csr, alu, mul, div, fence, bku; the instructions supported by each functional unit are shown in the table below:
jmp
instructions supported by jmp fu
Functional Unit
Supported Instruction
Extension
Description
jmp
AUIPC
I
scalar
jmp
JAL
I
scalar
jmp
JALR
I
scalar
brh
instructions supported by brh fu
Functional Unit
Supported Instruction
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
instructions supported by i2f fu
Functional Unit
Supported Instruction
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
instructions supported by i2v fu
Functional Unit
Supported Instruction
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 (please refer to decode for specific splitting methods), the supported UopSplitTypes are 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
instructions supported by f2v fu
Functional Unit
Supported Instruction
Extension
Description
f2v
FLI.H
I
zfa
f2v
FLI.S
I
zfa
f2v
FLI.D
I
zfa
Additionally, as uops split from vector instructions (please refer to decode for specific splitting methods), the supported UopSplitTypes are VEC_VFV, VEC_0XV, VEC_VFW, VEC_WFW, VEC_VFM, VEC_FSLIDE1UP, VEC_FSLIDE1DOWN. Supports: