[Ffmpeg-cvslog] r5493 - in trunk/libavcodec/ppc: dsputil_altivec.c dsputil_h264_template_altivec.c

Guillaume POIRIER poirierg
Mon Jun 19 13:23:29 CEST 2006


Hi,

On 6/17/06, lu_zero <subversion at mplayerhq.hu> wrote:

Looks like the following hunk broke compilation on OSX 10.3


> -    const vector signed short srcP0A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcP0);
> -    const vector signed short srcP0B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcP0);
> -    const vector signed short srcP1A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcP1);
> -    const vector signed short srcP1B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcP1);
> -
> -    const vector signed short srcP2A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcP2);
> -    const vector signed short srcP2B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcP2);
> -    const vector signed short srcP3A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcP3);
> -    const vector signed short srcP3B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcP3);
> -
> -    const vector signed short srcM1A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcM1);
> -    const vector signed short srcM1B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcM1);
> -    const vector signed short srcM2A = (vector signed short)vec_mergeh((vector unsigned char)vzero, srcM2);
> -    const vector signed short srcM2B = (vector signed short)vec_mergel((vector unsigned char)vzero, srcM2);
> -
> -    const vector signed short sum1A = vec_adds(srcP0A, srcP1A);
> -    const vector signed short sum1B = vec_adds(srcP0B, srcP1B);
> -    const vector signed short sum2A = vec_adds(srcM1A, srcP2A);
> -    const vector signed short sum2B = vec_adds(srcM1B, srcP2B);
> -    const vector signed short sum3A = vec_adds(srcM2A, srcP3A);
> -    const vector signed short sum3B = vec_adds(srcM2B, srcP3B);
> -
> -    const vector signed short pp1A = vec_mladd(sum1A, v20ss, v16ss);
> -    const vector signed short pp1B = vec_mladd(sum1B, v20ss, v16ss);
> -
> -    const vector signed short pp2A = vec_mladd(sum2A, v5ss, (vector signed short)vzero);
> -    const vector signed short pp2B = vec_mladd(sum2B, v5ss, (vector signed short)vzero);
> -
> -    const vector signed short pp3A = vec_add(sum3A, pp1A);
> -    const vector signed short pp3B = vec_add(sum3B, pp1B);
> -
> -    const vector signed short psumA = vec_sub(pp3A, pp2A);
> -    const vector signed short psumB = vec_sub(pp3B, pp2B);
> -
> -    const vector signed short sumA = vec_sra(psumA, v5us);
> -    const vector signed short sumB = vec_sra(psumB, v5us);
> -
> -    const vector unsigned char sum = vec_packsu(sumA, sumB);
> -
> -    const vector unsigned char dst1 = vec_ld(0, dst);
> -    const vector unsigned char dst2 = vec_ld(16, dst);
> -    const vector unsigned char vdst = vec_perm(dst1, dst2, vec_lvsl(0, dst));
> +    srcP0A = vec_mergeh((vector unsigned char)vzero, srcP0);
> +    srcP0B = vec_mergel((vector unsigned char)vzero, srcP0);
> +    srcP1A = vec_mergeh((vector unsigned char)vzero, srcP1);
> +    srcP1B = vec_mergel((vector unsigned char)vzero, srcP1);
> +
> +    srcP2A = vec_mergeh((vector unsigned char)vzero, srcP2);
> +    srcP2B = vec_mergel((vector unsigned char)vzero, srcP2);
> +    srcP3A = vec_mergeh((vector unsigned char)vzero, srcP3);
> +    srcP3B = vec_mergel((vector unsigned char)vzero, srcP3);
> +
> +    srcM1A = vec_mergeh((vector unsigned char)vzero, srcM1);
> +    srcM1B = vec_mergel((vector unsigned char)vzero, srcM1);
> +    srcM2A = vec_mergeh((vector unsigned char)vzero, srcM2);
> +    srcM2B = vec_mergel((vector unsigned char)vzero, srcM2);
> +
> +    sum1A = vec_adds(srcP0A, srcP1A);
> +    sum1B = vec_adds(srcP0B, srcP1B);
> +    sum2A = vec_adds(srcM1A, srcP2A);
> +    sum2B = vec_adds(srcM1B, srcP2B);
> +    sum3A = vec_adds(srcM2A, srcP3A);
> +    sum3B = vec_adds(srcM2B, srcP3B);
> +
> +    pp1A = vec_mladd(sum1A, v20ss, v16ss);
> +    pp1B = vec_mladd(sum1B, v20ss, v16ss);
> +
> +    pp2A = vec_mladd(sum2A, v5ss, (vector signed short)vzero);
> +    pp2B = vec_mladd(sum2B, v5ss, (vector signed short)vzero);
> +
> +    pp3A = vec_add(sum3A, pp1A);
> +    pp3B = vec_add(sum3B, pp1B);
> +
> +    psumA = vec_sub(pp3A, pp2A);
> +    psumB = vec_sub(pp3B, pp2B);
> +
> +    sumA = vec_sra(psumA, v5us);
> +    sumB = vec_sra(psumB, v5us);
> +
> +    sum = vec_packsu(sumA, sumB);
> +
> +    dst1 = vec_ld(0, dst);
> +    dst2 = vec_ld(16, dst);
> +    vdst = vec_perm(dst1, dst2, vec_lvsl(0, dst));

GCC says:

cc -I../libvo -I../../libvo -I/usr/X11R6/include -O4 -mcpu=7450
-mtune=7450 -pipe -ffast-math -fomit-frame-pointer -faltivec
-D__APPLE_ALTIVEC__ -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN
-DCONFIG_DARWIN -DCONFIG_DARWIN -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I..
-I/tmp/mplayer/libavutil -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_GNU_SOURCE   -c -o ppc/dsputil_h264_altivec.o
ppc/dsputil_h264_altivec.c
In file included from ppc/dsputil_h264_altivec.c:37:
ppc/dsputil_h264_template_altivec.c: In function
`put_h264_qpel16_h_lowpass_altivec':
ppc/dsputil_h264_template_altivec.c:255: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:256: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:257: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:258: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:260: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:261: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:262: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:263: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:265: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:266: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:267: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:268: error: incompatible types in assignment
In file included from ppc/dsputil_h264_altivec.c:57:
ppc/dsputil_h264_template_altivec.c: In function
`avg_h264_qpel16_h_lowpass_altivec':
ppc/dsputil_h264_template_altivec.c:255: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:256: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:257: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:258: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:260: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:261: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:262: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:263: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:265: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:266: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:267: error: incompatible types in assignment
ppc/dsputil_h264_template_altivec.c:268: error: incompatible types in assignment
make[1]: *** [ppc/dsputil_h264_altivec.o] Error 1
make: *** [libavcodec/libavcodec.a] Error 2


-- 
"Success consists of going from failure to failure without loss of enthusiasm."
 -- Winston Churchill




More information about the ffmpeg-cvslog mailing list