Тип операнда & quot; __m128i_ & quot; не допускается для ограничения «+ x»

Я тестирую на Solaris 11.3 с Sun Studio 12.2. У меня проблемы с получением SSE shuffle для компиляции:

solaris:$ cat test.cxx
#include <stdint.h>
#include <emmintrin.h>

int main(int argc, char* argv[])
{
__m128i a, b;
asm ("pshufb %1, %0" : "+x"(a) : "xm"(b));
return 0;
}

А потом:

solaris:$ /opt/solstudio12.2/bin/CC test.cxx -o test.exe
"test.cxx", line 7: Error: The operand type "__m128i_" is not allowed for the constraint "+x".
1 Error(s) detected.

pshufb является инструкцией SSSE3, но у меня возникают проблемы с определением, поддерживает ли Sun Studio 12.2 (слишком много постороннего шума во время поиска). Я считаю, что Sun Studio поддерживает это. Sun Studio 12.3 и выше использует встроенную сборку.

Почему я получаю ошибку и как ее исправить?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]