http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58482
--- Comment #4 from vincenzo Innocente <vincenzo.innocente at cern dot ch> --- I see. I have several use cases in which the reduction requires the access to two variables (minloc for instance: the minimum and its location) btw tried omp parallel for simd got ICE c++ -std=c++11 ured_omp4.cpp -O -ftree-vectorizer-verbose=1 -fopenmp ured_omp4.cpp: In function ‘TwoInt sum(const int*, int)’: ured_omp4.cpp:38:63: internal compiler error: Segmentation fault: 11 #pragma omp parallel for simd aligned(q: 16) reduction(foo:s) ^ ured_omp4.cpp:38:63: internal compiler error: Abort trap: 6 c++: internal compiler error: Abort trap: 6 (program cc1plus) Abort trap: 6