NMSIS-Core
Version 1.2.0
NMSIS-Core support for Nuclei processor-based devices
|
Signed MSW 32x16 Multiply and Add Instructions. More...
Functions | |
__STATIC_FORCEINLINE long | __RV_KMMAWB (long t, unsigned long a, unsigned long b) |
KMMAWB (SIMD Saturating MSW Signed Multiply Word and Bottom Half and Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWB_U (long t, unsigned long a, unsigned long b) |
KMMAWB.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half and Add with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWB2 (long t, unsigned long a, unsigned long b) |
KMMAWB2 (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 and Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWB2_U (long t, unsigned long a, unsigned long b) |
KMMAWB2.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 and Add with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWT (long t, unsigned long a, unsigned long b) |
KMMAWT (SIMD Saturating MSW Signed Multiply Word and Top Half and Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWT_U (long t, unsigned long a, unsigned long b) |
KMMAWT.u (SIMD Saturating MSW Signed Multiply Word and Top Half and Add with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWT2 (long t, unsigned long a, unsigned long b) |
KMMAWT2 (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 and Add) More... | |
__STATIC_FORCEINLINE long | __RV_KMMAWT2_U (long t, unsigned long a, unsigned long b) |
KMMAWT2.u (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 and Add with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_KMMWB2 (long a, unsigned long b) |
KMMWB2 (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2) More... | |
__STATIC_FORCEINLINE long | __RV_KMMWB2_U (long a, unsigned long b) |
KMMWB2.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_KMMWT2 (long a, unsigned long b) |
KMMWT2 (SIMD Saturating MSW Signed Multiply Word and Top Half & 2) More... | |
__STATIC_FORCEINLINE long | __RV_KMMWT2_U (long a, unsigned long b) |
KMMWT2.u (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_SMMWB (long a, unsigned long b) |
SMMWB (SIMD MSW Signed Multiply Word and Bottom Half) More... | |
__STATIC_FORCEINLINE long | __RV_SMMWB_U (long a, unsigned long b) |
SMMWB.u (SIMD MSW Signed Multiply Word and Bottom Half with Rounding) More... | |
__STATIC_FORCEINLINE long | __RV_SMMWT (long a, unsigned long b) |
SMMWT (SIMD MSW Signed Multiply Word and Top Half) More... | |
__STATIC_FORCEINLINE long | __RV_SMMWT_U (long a, unsigned long b) |
SMMWT.u (SIMD MSW Signed Multiply Word and Top Half with Rounding) More... | |
Signed MSW 32x16 Multiply and Add Instructions.
there are 15 Signed MSW 32x16 Multiply and Add Instructions
__STATIC_FORCEINLINE long __RV_KMMAWB | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWB (SIMD Saturating MSW Signed Multiply Word and Bottom Half and Add)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register and add the most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed bottom 16-bit content of the corresponding 32-bit elements of Rs2 and adds the most significant 32-bit multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the result before the addition operations.
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 3529 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWB2 | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWB2 (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 and Add)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and add the saturated most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The saturated addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed bottom 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and adds the saturated most significant 32-bit Q31 multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the result before the addition operations.
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 3659 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWB2_U | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWB2.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 and Add with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and add the saturated most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The saturated addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed bottom 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and adds the saturated most significant 32-bit Q31 multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the result before the addition operations.
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 3727 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWB_U | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWB.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half and Add with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register and add the most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed bottom 16-bit content of the corresponding 32-bit elements of Rs2 and adds the most significant 32-bit multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the result before the addition operations.
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 3591 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWT | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWT (SIMD Saturating MSW Signed Multiply Word and Top Half and Add)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the signed top 16-bit of the corresponding 32-bit elements of another register and add the most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The addition results are written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed top 16-bit of the corresponding 32-bit elements of Rs2 and adds the most significant 32-bit multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the result before the addition operations.
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 3789 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWT2 | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWT2 (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 and Add)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and add the saturated most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The saturated addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed top 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and adds the saturated most significant 32-bit Q31 multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the result before the addition operations.
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 3919 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWT2_U | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWT2.u (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 and Add with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and add the saturated most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The saturated addition result is written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed top 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and adds the saturated most significant 32-bit Q31 multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the result before the addition operations.
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 3987 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMAWT_U | ( | long | t, |
unsigned long | a, | ||
unsigned long | b | ||
) |
KMMAWT.u (SIMD Saturating MSW Signed Multiply Word and Top Half and Add with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the signed top 16-bit of the corresponding 32-bit elements of another register and add the most significant 32-bit results with the corresponding signed 32-bit elements of a third register. The addition results are written to the corresponding 32-bit elements of the third register. The .u
form rounds up the multiplication results from the most significant discarded bit before the addition operations.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed top 16-bit of the corresponding 32-bit elements of Rs2 and adds the most significant 32-bit multiplication results with the corresponding signed 32-bit elements of Rd. If the addition result is beyond the Q31 number range (-2^31 <= Q31 <= 2^31-1), it is saturated to the range and the OV bit is set to 1. The results after saturation are written to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the result before the addition operations.
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 3851 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMWB2 | ( | long | a, |
unsigned long | b | ||
) |
KMMWB2 (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and write the saturated most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed bottom 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and writes the saturated most significant 32-bit Q31 multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 4162 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMWB2_U | ( | long | a, |
unsigned long | b | ||
) |
KMMWB2.u (SIMD Saturating MSW Signed Multiply Word and Bottom Half & 2 with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and write the saturated most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed bottom 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and writes the saturated most significant 32-bit Q31 multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 4218 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMWT2 | ( | long | a, |
unsigned long | b | ||
) |
KMMWT2 (SIMD Saturating MSW Signed Multiply Word and Top Half & 2)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and write the saturated most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed top 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and writes the saturated most significant 32-bit Q31 multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 4274 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_KMMWT2_U | ( | long | a, |
unsigned long | b | ||
) |
KMMWT2.u (SIMD Saturating MSW Signed Multiply Word and Top Half & 2 with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, double the multiplication results and write the saturated most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit Q31 elements of Rs1 with the signed top 16-bit Q15 content of the corresponding 32-bit elements of Rs2, doubles the Q46 results to Q47 numbers and writes the saturated most significant 32-bit Q31 multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit Q47 multiplication results by adding a 1 to bit 15 (i.e., bit 14 before doubling) of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 4330 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_SMMWB | ( | long | a, |
unsigned long | b | ||
) |
SMMWB (SIMD MSW Signed Multiply Word and Bottom Half)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, and write the most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed bottom 16-bit content of the corresponding 32-bit elements of Rs2 and writes the most significant 32-bit multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 8866 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_SMMWB_U | ( | long | a, |
unsigned long | b | ||
) |
SMMWB.u (SIMD MSW Signed Multiply Word and Bottom Half with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the bottom 16-bit of the corresponding 32-bit elements of another register, and write the most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the signed bottom 16-bit content of the corresponding 32-bit elements of Rs2 and writes the most significant 32-bit multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 8916 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_SMMWT | ( | long | a, |
unsigned long | b | ||
) |
SMMWT (SIMD MSW Signed Multiply Word and Top Half)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, and write the most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the top signed 16-bit content of the corresponding 32-bit elements of Rs2 and writes the most significant 32-bit multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 8966 of file core_feature_dsp.h.
References __ASM.
__STATIC_FORCEINLINE long __RV_SMMWT_U | ( | long | a, |
unsigned long | b | ||
) |
SMMWT.u (SIMD MSW Signed Multiply Word and Top Half with Rounding)
Type: SIMD
Syntax:
Purpose:
Multiply the signed 32-bit integer elements of one register and the top 16-bit of the corresponding 32-bit elements of another register, and write the most significant 32-bit results to the corresponding 32-bit elements of a register. The .u
form rounds up the results from the most significant discarded bit.
Description:
This instruction multiplies the signed 32-bit elements of Rs1 with the top signed 16-bit content of the corresponding 32-bit elements of Rs2 and writes the most significant 32-bit multiplication results to the corresponding 32-bit elements of Rd. The .u
form of the instruction rounds up the most significant 32-bit of the 48-bit multiplication results by adding a 1 to bit 15 of the results.
Operations:
[in] | a | long type of value stored in a |
[in] | b | unsigned long type of value stored in b |
Definition at line 9016 of file core_feature_dsp.h.
References __ASM.