Codebook Inner-Loop Code Listing: Carmel vs. Conventional ITU-T fixed-point "C"reference for (i3=1; i3 0) { sq = sq2; alp = alp_16; ix = i2; iy = i3; } } Carmel DSP implementation -- 3 cycles repeat(8) block { cliw aclp1(r0 += rn0, r2++, r4++) { a5 = a4 + *ma2 * *ma3 /* L_mac(alp1, *p3++, _1_8) */ || a0h = ff1 + *ma1 || nop /* ps2 = add(ps1, dn[i3]) */ || a2 = a2 - a5; /* s=L_msu(L_mult(alp_16,sq),sq2,alp); */ } cliw aclp2(r1++, r2--, r6++) { a0 = a0h * a0h /* sq2 = mult(ps2, ps2) */ || ifexe btr1 = *ma3 /* save index information */ || a1h = round(a5 + *ma1 * *ma2) /* round(alp2 = L_mac(alp2, *p4++, _1_2)) */ || ifexe a3 = a1; /* alp = alp_16, sq = sq2 */ } cliw aclp3() { a2 = a3l * a1h /* L_mult(sq, alp_16) */ || a1l = a0h || a5 = a3h * a0h /* L_mult(sq2, alp) */ } }