AE_MULS32F48P16S.LL_S2 — Legacy HiFi 2 16x16-bit signed fraction (1.15) to 32-bit (1.31) multiply with 32-bit saturation: slot 2 version.

Instruction Word

Slot
ae_slot2_0
6
3
6
2
6
1
6
0
5
9
5
8
5
7
5
6
5
5
5
4
5
3
5
2
5
1
5
0
4
9
4
8
4
7
4
6
4
5
4
4
4
3
4
2
4
1
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
3
2
3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
9876543210
Format ae_format - 64 bit(s) 1111
AE_MULS32F48P16S.LL_S210001000
ae_fld_mul_x2_S2_q0 3210
ae_fld_mul_x2_S2_d0 3210
ae_fld_mul_x2_S2_d1 3210

Assembler Syntax

AE_MULS32F48P16S.LL_S2 aed0..15(ae_mul_S2_q0), aed0..15(ae_mul_S2_d0), aed0..15(ae_mul_S2_d1)

C Syntax

#include <xtensa/tie/xt_hifi2.h>

extern ae_q56s AE_MULS32F48P16S_LL_S2(ae_p24x2s d0, ae_p24x2s d1);

Description

AE_MULS32F48P16S.LL_S2 is a 16x16-bit signed fraction (1.15) multiply with 32-bit saturation, with each input covering the range [1.0 .. 1.0), and a 32-bit (1.31) output into an AE_DR register. The extension LL indicates that the inputs are d0[23:8] and d1[23:8], and the multiply produces a 32-bit result as output with saturation. The result of the multiplication is written back to the accumulator. Note that the position of the binary point is relative to 1.23 and 17.47 values respectively, the same formats that match the AE_LP16F/AE_SP16F and AE_LQ32F/AE_SQ32F intrinsics. This instruction is provided mainly for compatibility with HiFi 2.

This is equivalent to AE_MULS32F48P16S.LL and will be automatically used by the compiler as needed.

Implementation Pipeline

In Out
AE_OVERFLOW Wstage, ae_mul_S2_d0 Mstage, ae_mul_S2_d1 Mstage AE_OVERFLOW Wstage, ae_mul_S2_q0 Wstage

Protos that use AE_MULS32F48P16S.LL_S2

proto AE_MULFS32P16S.LL_S2 { out ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULS32F48P16S.LL_S2 d, d0, d1;
}
proto AE_MULS32F48P16S.LL_S2 { out ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULS32F48P16S.LL_S2 d, d0, d1;
}