Message ID | 20190318135630.737b00a7c4524bc3e3c22fa5@gmx.com |
---|---|
State | Accepted |
Commit | ac3062f1a4e7c3fb6e423bc4d4896b6bb12846c3 |
Headers | show |
2019-03-18 12:56 GMT+01:00, Lauri Kasanen <cand@gmx.com>: > Signed-off-by: Lauri Kasanen <cand@gmx.com> > --- > libswscale/ppc/swscale_altivec.c | 6 +++--- > libswscale/ppc/swscale_ppc_template.c | 9 +++++---- > libswscale/ppc/swscale_vsx.c | 6 +++--- > 3 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/libswscale/ppc/swscale_altivec.c > b/libswscale/ppc/swscale_altivec.c > index d72ed1e..3cd9782 100644 > --- a/libswscale/ppc/swscale_altivec.c > +++ b/libswscale/ppc/swscale_altivec.c > @@ -43,10 +43,10 @@ > > #define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\ > vector signed short ls;\ > + vector signed int vf1, vf2, i1, i2;\ > GET_LS(l1, x, perm, src);\ > - vector signed int i1 = vec_mule(filter, ls);\ > - vector signed int i2 = vec_mulo(filter, ls);\ > - vector signed int vf1, vf2;\ > + i1 = vec_mule(filter, ls);\ > + i2 = vec_mulo(filter, ls);\ > vf1 = vec_mergeh(i1, i2);\ > vf2 = vec_mergel(i1, i2);\ > d1 = vec_add(d1, vf1);\ > diff --git a/libswscale/ppc/swscale_ppc_template.c > b/libswscale/ppc/swscale_ppc_template.c > index 11decab..3964a7a 100644 > --- a/libswscale/ppc/swscale_ppc_template.c > +++ b/libswscale/ppc/swscale_ppc_template.c > @@ -184,16 +184,17 @@ static void FUNC(hScale_real)(SwsContext *c, int16_t > *dst, int dstW, > > for (j = 0; j < filterSize - 15; j += 16) { > vector unsigned char src_v1, src_vF; > - vector signed short filter_v1R, filter_v2R, filter_v0, > filter_v1; > + vector signed short filter_v1R, filter_v2R, filter_v0, > filter_v1, src_vA, src_vB; > + vector signed int val_acc; > LOAD_SRCV(srcPos, j, src, permS, src_v0, src_v1, > src_vF); > - vector signed short src_vA = // vec_unpackh > sign-extends... > + src_vA = // vec_unpackh sign-extends... > (vector signed > short)(VEC_MERGEH((vector unsigned char)vzero, src_vF)); > - vector signed short src_vB = // vec_unpackh > sign-extends... > + src_vB = // vec_unpackh sign-extends... > (vector signed > short)(VEC_MERGEL((vector unsigned char)vzero, src_vF)); > GET_VFD(i, j, filter, filter_v0R, filter_v1R, permF, > filter_v0, 0); > GET_VFD(i, j, filter, filter_v1R, filter_v2R, permF, > filter_v1, 16); > > - vector signed int val_acc = vec_msums(src_vA, > filter_v0, val_v); > + val_acc = vec_msums(src_vA, filter_v0, val_v); > val_v = vec_msums(src_vB, filter_v1, val_acc); > UPDATE_PTR(filter_v2R, filter_v0R, src_v1, src_v0); > } > diff --git a/libswscale/ppc/swscale_vsx.c b/libswscale/ppc/swscale_vsx.c > index f6c7f1d..01eb46c 100644 > --- a/libswscale/ppc/swscale_vsx.c > +++ b/libswscale/ppc/swscale_vsx.c > @@ -42,10 +42,10 @@ > > #define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\ > vector signed short ls;\ > + vector signed int vf1, vf2, i1, i2;\ > GET_LS(l1, x, perm, src);\ > - vector signed int i1 = vec_mule(filter, ls);\ > - vector signed int i2 = vec_mulo(filter, ls);\ > - vector signed int vf1, vf2;\ > + i1 = vec_mule(filter, ls);\ > + i2 = vec_mulo(filter, ls);\ > vf1 = vec_mergeh(i1, i2);\ > vf2 = vec_mergel(i1, i2);\ > d1 = vec_add(d1, vf1);\ This looks good to me if you tested it and it reduces the number of warnings. Thank you, Carl Eugen
On Mon, 18 Mar 2019 14:06:15 +0100 Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > This looks good to me if you tested it and it reduces the number of warnings. Tested on power8. With these two patches, swscale/ppc has no warnings. - Lauri
diff --git a/libswscale/ppc/swscale_altivec.c b/libswscale/ppc/swscale_altivec.c index d72ed1e..3cd9782 100644 --- a/libswscale/ppc/swscale_altivec.c +++ b/libswscale/ppc/swscale_altivec.c @@ -43,10 +43,10 @@ #define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\ vector signed short ls;\ + vector signed int vf1, vf2, i1, i2;\ GET_LS(l1, x, perm, src);\ - vector signed int i1 = vec_mule(filter, ls);\ - vector signed int i2 = vec_mulo(filter, ls);\ - vector signed int vf1, vf2;\ + i1 = vec_mule(filter, ls);\ + i2 = vec_mulo(filter, ls);\ vf1 = vec_mergeh(i1, i2);\ vf2 = vec_mergel(i1, i2);\ d1 = vec_add(d1, vf1);\ diff --git a/libswscale/ppc/swscale_ppc_template.c b/libswscale/ppc/swscale_ppc_template.c index 11decab..3964a7a 100644 --- a/libswscale/ppc/swscale_ppc_template.c +++ b/libswscale/ppc/swscale_ppc_template.c @@ -184,16 +184,17 @@ static void FUNC(hScale_real)(SwsContext *c, int16_t *dst, int dstW, for (j = 0; j < filterSize - 15; j += 16) { vector unsigned char src_v1, src_vF; - vector signed short filter_v1R, filter_v2R, filter_v0, filter_v1; + vector signed short filter_v1R, filter_v2R, filter_v0, filter_v1, src_vA, src_vB; + vector signed int val_acc; LOAD_SRCV(srcPos, j, src, permS, src_v0, src_v1, src_vF); - vector signed short src_vA = // vec_unpackh sign-extends... + src_vA = // vec_unpackh sign-extends... (vector signed short)(VEC_MERGEH((vector unsigned char)vzero, src_vF)); - vector signed short src_vB = // vec_unpackh sign-extends... + src_vB = // vec_unpackh sign-extends... (vector signed short)(VEC_MERGEL((vector unsigned char)vzero, src_vF)); GET_VFD(i, j, filter, filter_v0R, filter_v1R, permF, filter_v0, 0); GET_VFD(i, j, filter, filter_v1R, filter_v2R, permF, filter_v1, 16); - vector signed int val_acc = vec_msums(src_vA, filter_v0, val_v); + val_acc = vec_msums(src_vA, filter_v0, val_v); val_v = vec_msums(src_vB, filter_v1, val_acc); UPDATE_PTR(filter_v2R, filter_v0R, src_v1, src_v0); } diff --git a/libswscale/ppc/swscale_vsx.c b/libswscale/ppc/swscale_vsx.c index f6c7f1d..01eb46c 100644 --- a/libswscale/ppc/swscale_vsx.c +++ b/libswscale/ppc/swscale_vsx.c @@ -42,10 +42,10 @@ #define yuv2planeX_8(d1, d2, l1, src, x, perm, filter) do {\ vector signed short ls;\ + vector signed int vf1, vf2, i1, i2;\ GET_LS(l1, x, perm, src);\ - vector signed int i1 = vec_mule(filter, ls);\ - vector signed int i2 = vec_mulo(filter, ls);\ - vector signed int vf1, vf2;\ + i1 = vec_mule(filter, ls);\ + i2 = vec_mulo(filter, ls);\ vf1 = vec_mergeh(i1, i2);\ vf2 = vec_mergel(i1, i2);\ d1 = vec_add(d1, vf1);\
Signed-off-by: Lauri Kasanen <cand@gmx.com> --- libswscale/ppc/swscale_altivec.c | 6 +++--- libswscale/ppc/swscale_ppc_template.c | 9 +++++---- libswscale/ppc/swscale_vsx.c | 6 +++--- 3 files changed, 11 insertions(+), 10 deletions(-)