OpenMP reduction with SSE __m128 type

OpenMP reduction with SSE __m128 type


I'm new with icpc and openmp and i'm currently facing a problem i can't solve by myself.

The problem seems there's no + operator overloaded for SSE type, i'm getting this compilation error

error: reduction variable is incompatible with reduction operator

for the following lines

static __m128 mvs = _mm_setzero_ps();

#pragma omp for reduction(+:mvs)
for(int line = 0; line < height / 4; line++)

It does compile with gcc though and with icpc when I use scalar type (like int) instead of __m128.

Am i missing something (compilation option, include) ? 

Thank you






3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

We have a defect open in our internal bugs database about this issue, DPD200293696 "basic arithmetic operator support for SIMD int types"

Update to this issue. it is fixed in 16.0 beta. If you have not tried, you can register for the 16.0 beta at Intel® Parallel Studio XE 2016 Beta program has begun  


Leave a Comment

Please sign in to add a comment. Not a member? Join today