我无法理解来自IBM XL C / C ++的警告。我正在从AIX ppc64-be机器AIX的编译场上研究GCC119。
$ cat test.cxx
#if defined(__ALTIVEC__)
# include <altivec.h>
# undef vector
# undef pixel
# undef bool
#endif
__vector unsigned char VecLoad(unsigned char data[])
{
return vec_ld(0, data);
}
编译它会导致:
$ xlC -qarch=pwr5 -qaltivec test.cxx -c
1540-2142 (W) "-qaltivec" is not compatible with "-qarch=pwr5". "-qnoaltivec" is being set.
"test.cxx", line 8.10: 1540-0040 (S) The text "unsigned" is unexpected. "__vector" may be undeclared or ambiguous.
删除-qarch
不能解决该问题,因为编译器默认为-qarch=pwr4
。
我仅在使用XLC编译器的AIX机器上看到此问题。在同一台计算机上,GCC正常。我用于测试的其他两台机器也可以。实际上,AIX机器是S822,运行安装了XLC的Linux的相同S822也可以。
问题出在哪里,我该如何解决?为什么我们不能在XLC的AIX上使用Altivec和POWER5?