Loading lib_dec/ivas_svd_dec_fx.c +9 −10 Original line number Diff line number Diff line Loading @@ -1072,7 +1072,6 @@ static void biDiagonalReductionLeft_64( move32(); IF( LT_16( currChannel, nChannelsL ) ) /* i <= m */ { Word16 n; Word32 tmp; norm_64=0; move64(); Loading @@ -1081,9 +1080,9 @@ static void biDiagonalReductionLeft_64( tmp=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],bitwindow)); norm_64=W_add(norm_64,W_mult0_32_32(tmp,tmp)); } n=W_norm(norm_64); norm_x=W_extract_h(W_shl(norm_64, n )); norm_x_e = add(sub(shl(bitwindow, 1), n), 1 ); norm_x_e=W_norm(norm_64); norm_x=W_extract_h(W_shl(norm_64, norm_x_e )); norm_x_e = add(sub(shl(bitwindow, 1), norm_x_e), 1 ); } IF ( norm_x ) { Loading Loading @@ -1137,7 +1136,6 @@ static void biDiagonalReductionLeft_64( norm_x_e = W_norm( norm_64); norm_x = W_extract_h( W_shl( norm_64, norm_x_e) ); f = Mpy_32_32( norm_x, invVal ); // f_e = add( invVal_e, sub(norm_x, r_e ) ); FOR ( jCh = currChannel; jCh < nChannelsL; jCh++ ) { Word16 magic_shift; Loading Loading @@ -1203,7 +1201,7 @@ static void biDiagonalReductionRight_64( } norm_x_e = W_norm( norm_64); norm_x = W_extract_h( W_shl( norm_64, norm_x_e) ); norm_x_e = add( sub( add( bitwindow+1, bitwindow+1), norm_x_e), 1); norm_x_e = add( sub( shl( bitwindow+1, 1), norm_x_e), 1); move16(); abs_x_e = W_norm( abs_64); abs_x = W_extract_h( W_shl( abs_64, abs_x_e) ); Loading Loading @@ -1237,15 +1235,16 @@ static void biDiagonalReductionRight_64( *g_e = tmp_g_e; move32(); move16(); factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow) ); tmp_e = sub( tmp_g_e, bitwindow); factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow+1) ); tmp_e = sub( tmp_g_e, bitwindow+1); tmpmul = W_mult0_32_32( tmp_g, factor2); tmpmul = W_shl(tmpmul, tmp_e); r_64 = W_sub( W_shr( tmpmul, 1), W_shl( norm_64, 1) );// FIXME: why those two shi(f)ts? r_64 = W_sub( tmpmul, norm_64 ); r_e = W_norm( r_64); r = W_extract_h( W_shl( r_64, r_e) ); r_e = sub( sub( add( bitwindow, tmp_g_e), tmp_e), r_e); // FIXME: reduce this!! r_e = sub( add( shl( bitwindow, 1), 1), r_e ); // r_e=2*bitwindow+1-r_e; invVal_e = r_e; move16(); Loading Loading
lib_dec/ivas_svd_dec_fx.c +9 −10 Original line number Diff line number Diff line Loading @@ -1072,7 +1072,6 @@ static void biDiagonalReductionLeft_64( move32(); IF( LT_16( currChannel, nChannelsL ) ) /* i <= m */ { Word16 n; Word32 tmp; norm_64=0; move64(); Loading @@ -1081,9 +1080,9 @@ static void biDiagonalReductionLeft_64( tmp=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],bitwindow)); norm_64=W_add(norm_64,W_mult0_32_32(tmp,tmp)); } n=W_norm(norm_64); norm_x=W_extract_h(W_shl(norm_64, n )); norm_x_e = add(sub(shl(bitwindow, 1), n), 1 ); norm_x_e=W_norm(norm_64); norm_x=W_extract_h(W_shl(norm_64, norm_x_e )); norm_x_e = add(sub(shl(bitwindow, 1), norm_x_e), 1 ); } IF ( norm_x ) { Loading Loading @@ -1137,7 +1136,6 @@ static void biDiagonalReductionLeft_64( norm_x_e = W_norm( norm_64); norm_x = W_extract_h( W_shl( norm_64, norm_x_e) ); f = Mpy_32_32( norm_x, invVal ); // f_e = add( invVal_e, sub(norm_x, r_e ) ); FOR ( jCh = currChannel; jCh < nChannelsL; jCh++ ) { Word16 magic_shift; Loading Loading @@ -1203,7 +1201,7 @@ static void biDiagonalReductionRight_64( } norm_x_e = W_norm( norm_64); norm_x = W_extract_h( W_shl( norm_64, norm_x_e) ); norm_x_e = add( sub( add( bitwindow+1, bitwindow+1), norm_x_e), 1); norm_x_e = add( sub( shl( bitwindow+1, 1), norm_x_e), 1); move16(); abs_x_e = W_norm( abs_64); abs_x = W_extract_h( W_shl( abs_64, abs_x_e) ); Loading Loading @@ -1237,15 +1235,16 @@ static void biDiagonalReductionRight_64( *g_e = tmp_g_e; move32(); move16(); factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow) ); tmp_e = sub( tmp_g_e, bitwindow); factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow+1) ); tmp_e = sub( tmp_g_e, bitwindow+1); tmpmul = W_mult0_32_32( tmp_g, factor2); tmpmul = W_shl(tmpmul, tmp_e); r_64 = W_sub( W_shr( tmpmul, 1), W_shl( norm_64, 1) );// FIXME: why those two shi(f)ts? r_64 = W_sub( tmpmul, norm_64 ); r_e = W_norm( r_64); r = W_extract_h( W_shl( r_64, r_e) ); r_e = sub( sub( add( bitwindow, tmp_g_e), tmp_e), r_e); // FIXME: reduce this!! r_e = sub( add( shl( bitwindow, 1), 1), r_e ); // r_e=2*bitwindow+1-r_e; invVal_e = r_e; move16(); Loading