Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

OpenMP reduction with SSE __m128 type

Le_Naour_R_
Beginner
407 Views

Hi,

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++)
{
        //code
}

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

 

 

 

 

 

0 Kudos
2 Replies
Melanie_B_Intel
Employee
407 Views

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

0 Kudos
JenniferJ
Moderator
407 Views

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  

Jennifer

0 Kudos
Reply