Power4 기기 인 이전 PowerMac G5에서 테스트를하고 있습니다. 빌드가 실패 :'vector long long'의 가용성은 무엇입니까?
typedef __vector unsigned long long uint64x2_p8;
나는 문제가 나는 형식 정의를 사용할 수 있도록시기를 결정하는 데 : 때문에
$ 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
실패입니다.
$ 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
를 사용할 수있는 경우는 설명하지 않습니다 : -mcpu=power4 -maltivec
으로 기계는 64 비트 가용성을보고합니다.
__vector unsigned long long
의 가용성은 무엇입니까? typedef는 언제 사용할 수 있습니까?
G5는 64 비트 * 아키텍처 *를 가지고 있지만 AltiVec은 그 당시의 64 비트 벡터 요소를 지원하지 않았으므로 64 비트 int도 배정도 부동입니다. –
폴 감사합니다. 우리는 Power4 (Altivec), Power7 (정렬되지 않은로드/저장) 및 Power8 (코어 내 암호화)에 코드를 분할합니다. 내 질문에 우리는 64 비트 유형의 Power4 대신 Power5를 사용해야합니까? – jww
POWER의 어떤 세대가 SIMD 용 64 비트 요소 유형을 소개했는지 모르겠습니다.이를 찾으려면 조사를해야합니다. 물론 64 비트 요소를 사용해야하는 경우 G5에서 코드를 테스트 할 수 없습니다. –