Nuclei Default SIMD DSP Additional Instructions
- __STATIC_FORCEINLINE unsigned long __RV_EXPD80 (unsigned long a)
- __STATIC_FORCEINLINE unsigned long __RV_EXPD81 (unsigned long a)
- __STATIC_FORCEINLINE unsigned long __RV_EXPD82 (unsigned long a)
- __STATIC_FORCEINLINE unsigned long __RV_EXPD83 (unsigned long a)
- group Nuclei Default SIMD DSP Additional Instructions
(RV32 & RV64)Nuclei Customized DSP Instructions
This is Nuclei customized DSP instructions for both RV32 and RV64
Functions
- __STATIC_FORCEINLINE unsigned long __RV_EXPD80 (unsigned long a)
EXPD80 (Expand and Copy Byte 0 to 32bit(when rv32) or 64bit(when rv64))
Type: DSP
Syntax:
EXPD80 Rd, Rs1
Purpose
:
When rv32, Copy 8-bit data from 32-bit chunks into 4 bytes in a register. When rv64, Copy 8-bit data from 64-bit chunks into 8 bytes in a register.
Description
:
Moves Rs1.B[0][7:0] to Rd.[0][7:0], Rd.[1][7:0], Rd.[2][7:0], Rd.[3][7:0]
Operations:
Rd.W[x][31:0] = CONCAT(Rs1.B[0][7:0], Rs1.B[0][7:0], Rs1.B[0][7:0], Rs1.B[0][7:0]); for RV32: x=0
- Parameters:
a – [in] unsigned long type of value stored in a
- Returns:
value stored in unsigned long type
- __STATIC_FORCEINLINE unsigned long __RV_EXPD81 (unsigned long a)
EXPD81 (Expand and Copy Byte 1 to 32bit(rv32) or 64bit(when rv64))
Type: DSP
Syntax:
EXPD81 Rd, Rs1
Purpose
:
Copy 8-bit data from 32-bit chunks into 4 bytes in a register.
Description
:
Moves Rs1.B[1][7:0] to Rd.[0][7:0], Rd.[1][7:0], Rd.[2][7:0], Rd.[3][7:0]
Operations:
Rd.W[x][31:0] = CONCAT(Rs1.B[1][7:0], Rs1.B[1][7:0], Rs1.B[1][7:0], Rs1.B[1][7:0]); for RV32: x=0
- Parameters:
a – [in] unsigned long type of value stored in a
- Returns:
value stored in unsigned long type
- __STATIC_FORCEINLINE unsigned long __RV_EXPD82 (unsigned long a)
EXPD82 (Expand and Copy Byte 2 to 32bit(rv32) or 64bit(when rv64))
Type: DSP
Syntax:
EXPD82 Rd, Rs1
Purpose
:
Copy 8-bit data from 32-bit chunks into 4 bytes in a register.
Description
:
Moves Rs1.B[2][7:0] to Rd.[0][7:0], Rd.[1][7:0], Rd.[2][7:0], Rd.[3][7:0]
Operations:
Rd.W[x][31:0] = CONCAT(Rs1.B[2][7:0], Rs1.B[2][7:0], Rs1.B[2][7:0], Rs1.B[2][7:0]); for RV32: x=0
- Parameters:
a – [in] unsigned long type of value stored in a
- Returns:
value stored in unsigned long type
- __STATIC_FORCEINLINE unsigned long __RV_EXPD83 (unsigned long a)
EXPD83 (Expand and Copy Byte 3 to 32bit(rv32) or 64bit(when rv64))
Type: DSP
Syntax:
EXPD83 Rd, Rs1
Purpose
:
Copy 8-bit data from 32-bit chunks into 4 bytes in a register.
Description
:
Moves Rs1.B[3][7:0] to Rd.[0][7:0], Rd.[1][7:0], Rd.[2][7:0], Rd.[3][7:0]
Operations:
Rd.W[x][31:0] = CONCAT(Rs1.B[3][7:0], Rs1.B[3][7:0], Rs1.B[3][7:0], Rs1.B[3][7:0]); for RV32: x=0
- Parameters:
a – [in] unsigned long type of value stored in a
- Returns:
value stored in unsigned long type