Я только начинаю экспериментировать с добавлением OpenMP к некоторому коду SSE.
Моя первая тестовая программа SOMETIMES падает в _mm_set_ps, но работает, когда я устанавливаю if (0).
Itвыглядит так просто, что я, должно быть, упускаю что-то очевидное.Я компилирую с помощью gcc -fopenmp -g -march = core2 -pthreads
#include <stdio.h>
#include <stdlib.h>
#include <immintrin.h>
int main()
{
#pragma omp parallel if (1)
{
#pragma omp sections
{
#pragma omp section
{
__m128 x1 = _mm_set_ps ( 1.1f, 2.1f, 3.1f, 4.1f );
}
#pragma omp section
{
__m128 x2 = _mm_set_ps ( 1.2f, 2.2f, 3.2f, 4.2f );
}
} // end omp sections
} //end omp parallel
return 0;
}