Hi,

The lone power8 fate failing test seems like an aliasing issue.
I've isolated it into the attached standalone test case. Compiling it
with
gcc -std=c11 -maltivec -mabi=altivec -mvsx -O3 -fno-tree-vectorize
-o test test.c

reproduces on gcc 8.2.0, dropping the optimization level fixes it. This
was one of the "adding a printf made it work" things too. 

-Wstrict-aliasing=1 complains about the "register int *idataptr =
(int*)dataptr;" cast. If I put "typedef int __attribute__((may_alias))
int_alias;" at the top and change the cast and type to int_alias, the
results become correct.

This code would probably crash on systems where unaligned access is
prohibited, I think the incoming block is just 16-bit aligned. How do
you prefer to fix alignment/aliasing issues?

- Lauri

Attachment: test.c
Description: Binary data

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to