NMSIS-Core
Version 1.2.0
NMSIS-Core support for Nuclei processor-based devices
|
(RV64 Only) 32-bit Multiply & Add Instructions More...
Functions | |
__STATIC_FORCEINLINE long | __RV_KMABB32 (long t, unsigned long a, unsigned long b) |
KMABB32 (Saturating Signed Multiply Bottom Words & Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMABT32 (long t, unsigned long a, unsigned long b) |
KMABT32 (Saturating Signed Multiply Bottom & Top Words & Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMATT32 (long t, unsigned long a, unsigned long b) |
KMATT32 (Saturating Signed Multiply Top Words & Add) More... | |
(RV64 Only) 32-bit Multiply & Add Instructions
there are 3 (RV64 Only) 32-bit Multiply & Add Instructions
__STATIC_FORCEINLINE long __RV_KMABB32 | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMABB32 (Saturating Signed Multiply Bottom Words & Add)
Type: DSP (RV64 Only)
Syntax:
Purpose:
Multiply the signed 32-bit element in a register with the 32-bit element in another register and add the result to the content of 64-bit data in the third register. The addition result may be saturated and is written to the third register.
Description:
For the KMABB32
instruction, it multiplies the bottom 32-bit element in Rs1 with the bottom 32-bit element in Rs2. For the KMABT32
instruction, it multiplies the bottom 32-bit element in Rs1 with the top 32-bit element in Rs2. For the KMATT32
instruction, it multiplies the top 32-bit element in Rs1 with the top 32-bit element in Rs2. The multiplication result is added to the content of 64-bit data in Rd. If the addition result is beyond the Q63 number range (-2^63 <= Q63 <= 2^63-1), it is saturated to the range and the OV bit is set to 1. The result after saturation is written to Rd. The 32-bit contents of Rs1 and Rs2 are treated as signed integers.
Operations:
[in] | t | long type of value stored in t |
[in] | a | unsigned long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 14674 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMABT32 | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMABT32 (Saturating Signed Multiply Bottom & Top Words & Add)
Type: DSP (RV64 Only)
Syntax:
Purpose:
Multiply the signed 32-bit element in a register with the 32-bit element in another register and add the result to the content of 64-bit data in the third register. The addition result may be saturated and is written to the third register.
Description:
For the KMABB32
instruction, it multiplies the bottom 32-bit element in Rs1 with the bottom 32-bit element in Rs2. For the KMABT32
instruction, it multiplies the bottom 32-bit element in Rs1 with the top 32-bit element in Rs2. For the KMATT32
instruction, it multiplies the top 32-bit element in Rs1 with the top 32-bit element in Rs2. The multiplication result is added to the content of 64-bit data in Rd. If the addition result is beyond the Q63 number range (-2^63 <= Q63 <= 2^63-1), it is saturated to the range and the OV bit is set to 1. The result after saturation is written to Rd. The 32-bit contents of Rs1 and Rs2 are treated as signed integers.
Operations:
[in] | t | long type of value stored in t |
[in] | a | unsigned long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 14736 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMATT32 | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMATT32 (Saturating Signed Multiply Top Words & Add)
Type: DSP (RV64 Only)
Syntax:
Purpose:
Multiply the signed 32-bit element in a register with the 32-bit element in another register and add the result to the content of 64-bit data in the third register. The addition result may be saturated and is written to the third register.
Description:
For the KMABB32
instruction, it multiplies the bottom 32-bit element in Rs1 with the bottom 32-bit element in Rs2. For the KMABT32
instruction, it multiplies the bottom 32-bit element in Rs1 with the top 32-bit element in Rs2. For the KMATT32
instruction, it multiplies the top 32-bit element in Rs1 with the top 32-bit element in Rs2. The multiplication result is added to the content of 64-bit data in Rd. If the addition result is beyond the Q63 number range (-2^63 <= Q63 <= 2^63-1), it is saturated to the range and the OV bit is set to 1. The result after saturation is written to Rd. The 32-bit contents of Rs1 and Rs2 are treated as signed integers.
Operations:
[in] | t | long type of value stored in t |
[in] | a | unsigned long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 14798 of file core_feature_dsp.h.
References __ASM.