Возможная ошибка OpenMP + SSE при использовании _mm_shuffle_ps в Xcode 4 (LLVM GCC) - PullRequest
0 голосов
/ 13 ноября 2011

Я переключил свой компилятор на LLVM GCC 4.2 в XCode 4.2 из GCC и столкнулся со странной ошибкой компоновщика для встроенной функции _mm_shuffle_ps в OpenMP.Эта функция будет работать в другом месте, но после помещения ее в блок omp она начнет генерировать следующую ошибку компоновщика:

"___builtin_ia32_shufps", referenced from:
__ZN7Annulus12traceFactorsEP9PrimitiveP8VFMatrix.omp_fn.0 in Annulus.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

Основная структура моего кода следующая:

#pragma omp parallel {
    //Some stuff
    #pragma omp for {
        //Do more stuff including _mm_shuffle_ps
    }
}

Код прекрасно работает в GCC 4.2, так что это ошибка в реализации OpenMP в LLVM GCC или мне нужен экзотический флаг компилятора?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Просто к вашему сведению:

У меня та же проблема, но с инструкцией shuf_pd. Другие свойства работают просто отлично. Я только что подал эту ошибку в Apple.

Возможно, есть обходной путь, который я еще не пробовал: поместите весь код SSE в другую функцию и вызовите его из цикла OpenMP.

0 голосов
/ 14 ноября 2011

Абсолютно ошибка.Пожалуйста, подайте это.Благодарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...