Intrinsic Functions for SIMD Instructions
Click Nuclei DSP Feature to learn about Core DSP in Nuclei ISA Spec.
- SIMD Data Processing Instructions
- SIMD 16-bit Add/Subtract Instructions
- SIMD 8-bit Addition & Subtraction Instructions
- SIMD 16-bit Shift Instructions
- SIMD 8-bit Shift Instructions
- SIMD 16-bit Compare Instructions
- SIMD 8-bit Compare Instructions
- SIMD 16-bit Multiply Instructions
- SIMD 8-bit Multiply Instructions
- SIMD 16-bit Miscellaneous Instructions
- SIMD 8-bit Miscellaneous Instructions
- SIMD 8-bit Unpacking Instructions
- Non-SIMD Instructions
- Partial-SIMD Data Processing Instructions
- 64-bit Profile Instructions
- RV64 Only Instructions
- (RV64 Only) SIMD 32-bit Add/Subtract Instructions
- (RV64 Only) SIMD 32-bit Shift Instructions
- (RV64 Only) SIMD 32-bit Miscellaneous Instructions
- (RV64 Only) SIMD Q15 Saturating Multiply Instructions
- (RV64 Only) 32-bit Multiply Instructions
- (RV64 Only) 32-bit Multiply & Add Instructions
- (RV64 Only) 32-bit Parallel Multiply & Add Instructions
- (RV64 Only) Non-SIMD 32-bit Shift Instructions
- 32-bit Packing Instructions
- Nuclei Customized Default DSP Instructions
- Nuclei Customized N1/N2/N3 DSP Instructions
- group NMSIS_Core_DSP_Intrinsic
Functions that generate RISC-V DSP SIMD instructions.
The following functions generate specified RISC-V SIMD instructions that cannot be directly accessed by compiler.
DSP ISA Extension Instruction Summary
Shorthand Definitions
r.H == rH1: r[31:16], r.L == r.H0: r[15:0]
r.B3: r[31:24], r.B2: r[23:16], r.B1: r[15:8], r.B0: r[7:0]
r.B[x]: r[(x*8+7):(x*8+0)]
r.H[x]: r[(x*16+7):(x*16+0)]
r.W[x]: r[(x*32+31):(x*32+0)]
r[xU]: the upper 32-bit of a 64-bit number; xU represents the GPR number that contains this upper part 32-bit value.
r[xL]: the lower 32-bit of a 64-bit number; xL represents the GPR number that contains this lower part 32-bit value.
r[xU].r[xL]: a 64-bit number that is formed from a pair of GPRs.
s>>: signed arithmetic right shift:
u>>: unsigned logical right shift
SAT.Qn(): Saturate to the range of [-2^n, 2^n-1], if saturation happens, set PSW.OV.
SAT.Um(): Saturate to the range of [0, 2^m-1], if saturation happens, set PSW.OV.
RUND(): Indicate
rounding
, i.e., add 1 to the most significant discarded bit for right shift or MSW-type multiplication instructions.Sign or Zero Extending functions:
SEm(data): Sign-Extend data to m-bit.:
ZEm(data): Zero-Extend data to m-bit.
ABS(x): Calculate the absolute value of
x
.CONCAT(x,y): Concatinate
x
andy
to form a value.u<: Unsinged less than comparison.
u<=: Unsinged less than & equal comparison.
u>: Unsinged greater than comparison.
s*: Signed multiplication.
u*: Unsigned multiplication.