[x264-devel] PPC -- vec_splats doesn't exist on Power4 PPC/Apple

Luca Barbato lu_zero at gentoo.org
Sun Mar 31 19:50:32 CEST 2019


On 31/03/2019 04:26, Ken Cunningham wrote:
> Hi all,
> 
> I'm one of the port maintainers over at MacPorts.
> 
> Although no-one would try to claim that Apple's old PPC machines are a major market segment any longer, over at MacPorts I try to keep these systems as relevant as I can, and it seems to still have a reasonable following.
> 
> I'm running into some troubles with the recent move in x264 to vec_splats(), which errors out on these systems.
> 
> I'm not a PPC assembly expert, but I have googled around enough to find out that this function appears to be Power7+ only. It does exist in newer versions of gcc, but when I try to enable it with -maltivec or my other usual tricks, I run into issues with unrecognized assembly mnemonics.
> 
> For the moment, I've patched back common/ppc/quant.c to the older, non-vec_splats() version, but I see that there are more files moving in this direction.
> 
> Can anyone think of an idea how I might get around this ? Perhaps there is some kind of #define that I might use to emulate this function using the other numerous vec_splat* functions that do seem to exist on PPC Darwin?
> 

Replying also on the ml:

Both clang and gcc seem to not guard that intrinsic and clang has it 
mapped to its portable simd.

Could you please check that passing the -march/-mcpu for g4 or g5 
produces valid code?

lu


More information about the x264-devel mailing list