comparison ppc/dsputil_altivec.c @ 3545:e2a589e55906 libavcodec

Minor fix
author lu_zero
date Thu, 03 Aug 2006 14:37:58 +0000
parents 6aabb2bec46c
children 5f97ba9a4eaa
comparison
equal deleted inserted replaced
3544:8bb61d9a2c40 3545:e2a589e55906
1700 1700
1701 static void vorbis_inverse_coupling_altivec(float *mag, float *ang, 1701 static void vorbis_inverse_coupling_altivec(float *mag, float *ang,
1702 int blocksize) 1702 int blocksize)
1703 { 1703 {
1704 int i; 1704 int i;
1705 vector float m, a; 1705 vector float m, a, s0, s1;
1706 vector bool int t0, t1; 1706 vector bool int t0, t1;
1707 const vector unsigned int v_31 = //XXX 1707 const vector unsigned int v_31 = //XXX
1708 vec_add(vec_add(vec_splat_u32(15),vec_splat_u32(15)),vec_splat_u32(1)); 1708 vec_add(vec_add(vec_splat_u32(15),vec_splat_u32(15)),vec_splat_u32(1));
1709 for(i=0; i<blocksize; i+=4) { 1709 for(i=0; i<blocksize; i+=4) {
1710 m = vec_ld(0, mag+i); 1710 m = vec_ld(0, mag+i);
1711 a = vec_ld(0, ang+i); 1711 a = vec_ld(0, ang+i);
1712 t0 = vec_cmple(m, (vector float)vec_splat_u32(0)); 1712 t0 = vec_cmple(m, (vector float)vec_splat_u32(0));
1713 t1 = vec_cmple(a, (vector float)vec_splat_u32(0)); 1713 t1 = vec_cmple(a, (vector float)vec_splat_u32(0));
1714 a = vec_xor(a, vec_sl((vector unsigned int)t0, v_31)); // (a ^ sign(m)) 1714 a = vec_xor(a, (vector float) vec_sl((vector unsigned int)t0, v_31));
1715 t0 = vec_and(a, t1); 1715 s0 = vec_and(a, t1);
1716 t1 = vec_andc(a, t1); 1716 s1 = vec_andc(a, t1);
1717 a = vec_add(m, t0); 1717 a = vec_add(m, s0);
1718 m = vec_sub(m, t1); 1718 m = vec_sub(m, s1);
1719 vec_ste(a, 0, ang+i); 1719 vec_ste(a, 0, ang+i);
1720 vec_ste(m, 0, mag+i); 1720 vec_ste(m, 0, mag+i);
1721 } 1721 }
1722 } 1722 }
1723 1723