Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
7679 Discussions

OpenMP reduction with SSE __m128 type

Le_Naour_R_
Beginner
140 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
140 Views

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

JenniferJ
Moderator
140 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

Reply