저는 C/C++에서 내장 함수를 사용하고 있습니다. 정렬되지 않은 데이터를 VMX 레지스터에로드하려면 lvd2x
명령어가 필요합니다. Power7 및 Power8 프로세서에서는 lvd2x
을 사용할 수 있습니다.13.1.4 이전의 LXVD2X 용 XL C 기본 제공 장치가 있습니까?
GCC는 작업을 수행하기 위해 vec_vsx_ld
을 제공합니다. IBM XL C/C++ for Linux, V13.1.5, 제 4 장에 따르면, 향상된 버전 13.1.4에 추가 :
새로운 내장 함수
다음 GCC 벡터 내장 기능이 지원됩니다
- vec_vsx_ld
- ...
코드 XL C에 대해 보호되어 있으므로 GCC의 내장 기능은 필요하지 않습니다. 문제는 내가 찾을 수 없다 XL C의 내장 lvd2x
을 위해 :
#if defined(__xlc__) || defined(__xlC__)
uint8x16_p8 block = vec_vsx_ld(0, t);
#else
uint64x2_p8 block = (uint64x2_p8)vec_vsx_ld(0, t);
#endif
GCC는이 농장은 XL C v13.1.3 (5725-C72, 5765-J07)와 AIX를 제공 컴파일합니다. 13.1.4 이전에 LXVD2X 용 XL C 내장 기능이 있습니까? 내장 된 것이 있다면 무엇입니까? 그렇지 않다면 우리는 어떻게 명령에 접근 할 수 있습니까?
(ASM 및 인라인 ASM을 피하려고합니다. 필자는 프로세서를 작성하는 데 대해 충분히 알지 못합니다. 또한 상당히 불쾌한 경험이었고, 고통을 증폭시키고 싶지 않습니다. asm을 사용하려고 시도 함).
Q : 지침 (GCC 사용)에 대한 액세스 권한은 어떻게 얻습니까? A : 인라인 어셈블리는 확실한 선택입니다.) 적어도 * TRY *일까요? 추신 : 귀하의 아키텍처는 파워 PC, 맞습니까? – paulsm4
@ paulsm4 - GCC가 좋습니다. IBM의 XL C 컴파일러에 필요합니다. – jww