AE_MULSS32F48P16S.LH — Legacy HiFi 2 16x16-bit signed fraction (1.15) to 32-bit (1.31) multiply-sub (MAC) with 32-bit saturation.

Instruction Word

Slot
ae2_slot1
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_format2 - 64 bit(s)0000 1110
AE_MULSS32F48P16S.LH 1101 0010 0101
ae_fld_mul_q0 3210
ae_fld_mul_d0 3210
ae_fld_mul_d1 3210

Slot
ae_slot1
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_MULSS32F48P16S.LH 10110001
ae_fld_mul_q0 3210
ae_fld_mul_d0 3210
ae_fld_mul_d1 3210

Slot
ae_slot1
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_format1 - 64 bit(s)1 1110
AE_MULSS32F48P16S.LH 10110001
ae_fld_mul_q0 3210
ae_fld_mul_d0 3210
ae_fld_mul_d1 3210

Assembler Syntax

AE_MULSS32F48P16S.LH aed0..15(ae_mul_q0), aed0..15(ae_mul_d0), aed0..15(ae_mul_d1)

C Syntax

#include <xtensa/tie/xt_hifi2.h>

extern void AE_MULSS32F48P16S_LH(ae_q56s d /*inout*/, ae_p24x2s d0, ae_p24x2s d1);

Description

AE_MULSS32F48P16S.LH is a 16x16-bit signed fraction (1.15) multiply-add (MAC) 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 LH indicates that the inputs are d0[23:8] and d1[55:40], and the multiply produces a 32-bit result as output with saturation. Note that the product is saturated before being subtracted from the contents of the accumulator. The result of the multiplication is subtracted from the acccumulator contents and 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.

Implementation Pipeline

In Out
AE_OVERFLOW Wstage, ae_mul_q0 Wstage, ae_mul_d0 Mstage, ae_mul_d1 Mstage AE_OVERFLOW Wstage, ae_mul_q0 Wstage

Protos that use AE_MULSS32F48P16S.LH

proto AE_MULSFS32P16S.HL { inout ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULSS32F48P16S.LH d, d1, d0;
}
proto AE_MULSFS32P16S.LH { inout ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULSS32F48P16S.LH d, d0, d1;
}
proto AE_MULSS32F48P16S.HL { inout ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULSS32F48P16S.LH d, d1, d0;
}
proto AE_MULSS32F48P16S.LH { inout ae_q56s d, in ae_p24x2s d0, in ae_p24x2s d1 }{}{
AE_MULSS32F48P16S.LH d, d0, d1;
}