SunOS 5.11 (Solaris 11.3)에서 Sun Studio 12.3에서 작업하고 있습니다. 그 나는 아주 이해가 안 컴파일 오류 제공 :ube 오류 : _mm_aeskeygenassist_si128 내장 기능이 -xarch = aes 이상 필요합니다.
-m64
추가
$ /opt/solarisstudio12.3/bin/CC -xarch=sse2 -xarch=aes -xarch=sse4_2 -c test.cxx
"test.cxx", line 11: ube: error: _mm_aeskeygenassist_si128 intrinsic requires at least -xarch=aes.
CC: ube failed for test.cxx
이 같은 오류가 발생합니다.
테스트 프로그램에는 별 무리가 없습니다.
$ cat test.cxx
#include <stdint.h>
#include <wmmintrin.h>
#include <emmintrin.h>
int main(int argc, char* argv[])
{
// SSE2
int64_t x[2];
__m128i y = _mm_loadu_si128((__m128i*)x);
// AES
__m128i z = _mm_aeskeygenassist_si128(y,0);
return 0;
}
내가 매뉴얼을 통해 작동 및 SSE2, SSSE3, AES 및 SSE4 등의 다양한 CPU 아키텍처 기능을 지정하는 방법을 배우려고 노력했습니다 : 그것은 단순히 대한 고유 SSE2, 그리고 고유 AES을 행사. 하지만 여러 사람을 지정하는 방법을 결정할 수없는 것 같습니다. 여기 내가 찾은 더 완벽한 페이지 중 하나가 있습니다 : Oracle Man Page CC.1,하지만 분명히 -xarch
과 관련하여 뭔가 빠졌습니다.
내가 뭘 잘못하고 있고, 어떻게 수정합니까?
'aes'는'sse2 U sse4_2'의 상위 집합이 아닙니다. 그렇다면'-xarch = aes' 옵션 만 제공하면됩니다. – Leon
@ 레온 - 나는 그렇게 생각하지 않습니다. 최근 Solaris 이외의 시스템에서도 비슷한 버그 보고서를 작성했습니다. 또한 RDRAND, RDSEED 및 BMI2가 사물의 계획에 어떻게 부합되는지 파악해야하므로 문제가 나아지기 전에 문제가 더 악화 될 것입니다. – jww
@ 레온 - 이전에 [맨 페이지 cc.1] (http://docs.oracle.com/cd/E24457_01/html/E22003/cc.1.html) (조금 C의 것)을보고있었습니다. SSE는 자연스럽게 진행되지만 AES는 진행 과정에 포함되지 않습니다. – jww