Ошибка сегментации с использованием OpenMp и SSE

Я только начинаю экспериментировать, добавляя OpenMP в некоторый код SSE.

Моя первая тестовая программа ИНОГДА дает сбой в _mm_set_ps, но работает, когда я устанавливаю if (0) .

Это кажется настолько простым, что я, должно быть, упускаю что-то очевидное. Я компилирую с помощью 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;
  }
6
задан rwong 16 July 2011 в 18:55
поделиться