Openmp Reduction error

Version : 

Intel® C++ compiler version 11.0.081 and 11.0.081 for IA64

Operating System :  Linux

Problem Description : 
The Intel® C++ compiler version 11.0.081 and 11.0.081 for IA64 Linux is unable to reduce the reduction variable properly. The following code segment is an example:

// f65276.cpp
// tstcase_openmp_reduction.cpp


#include <stdio.h>
#define LOOPCOUNT 100

int main(int argc,char **argv)
{
int i;
//double sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9;
float sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9;

sum0 = sum1 = sum2 = sum3 = sum4 = sum5 = sum6 = sum7 = sum8 = sum9 = 0.0;

#pragma omp parallel for reduction(+: sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9)

for(i=0; i < LOOPCOUNT; i++)
{
sum0 += 1.0;
sum1 += 1.0;
sum2 += 1.0;
sum3 += 1.0;
sum4 += 1.0;
sum5 += 1.0;
sum6 += 1.0;
sum7 += 1.0;
sum8 += 1.0;
sum9 += 1.0;
}

printf("%g, %g, %g, %g, %g, %g, %g, %g, %g, %g\n",sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9);
return 0;
}

The above code compiles and runs correctly using icc v8.0 on ia64 and v10.0 on ia32 ,but the result is incorrect when using Intel® C++ compiler version 11.0.081 and 11.0.083 on ia64. The expected results should print (and that's exactly the icc v8 and v10 results): 100,100,100,100,100,100,100,100,100,100.
While using icc v11, it prints: 100, 100, 100, 100, 100, 100, 13, 13, 13, 13

If I use float instead of double variables, the result is correct.

Resolution Status : 

The issue is fixed in beta Intel® C++ compiler version 11.1.023.



[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]
Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.