我正在一台旧的 PowerMac G5 上进行测试,它是一台 Power4 机器。构建失败:
$ make
...
g++ -DNDEBUG -g2 -O3 -mcpu=power4 -maltivec -c ppc-simd.cpp
ppc-crypto.h:36: error: use of 'long long' in AltiVec types is invalid
make: *** [ppc-simd.o] Error 1
失败是由于:
typedef __vector unsigned long long uint64x2_p8;
我无法确定何时应该使 typedef 可用。机器-mcpu=power4 -maltivec
报告 64 位可用性:
$ gcc -mcpu=power4 -maltivec -dM -E - </dev/null | sort | egrep -i -E 'power|ARCH'
#define _ARCH_PPC 1
#define _ARCH_PPC64 1
#define __POWERPC__ 1
OpenPOWER | 6.1。Vector Data Types手册提供了有关矢量数据类型的良好信息,但没有讨论何时vector long long
可用。
什么是可用性__vector unsigned long long
?什么时候可以使用 typedef?