OpenMP breaks auto-vectorization

tim18
Total Points:
68,987
Status Points:
68,987
Black Belt
June 26, 2009 7:35 AM PDT
Rate
 
#1
We had a case where the poster gave a complete working example on the forum.  In that case, 2 steps were required to fix it:
1) upgrade to 11.1
2) set -inline-max-size=50  (this value was low enough to stop in-lining of a function with omp parallel)

Even though 11.1 is intended to be less aggressive on in-lining than 10.1 and 11.0, in that case it still needed the option to help out. 

Do you still get vectorization without -openmp but no vectorization with -openmp, if you turn off in-lining?

A complete case would be required to see how you have set it up so that the compiler doesn't have to be concerned about aliasing between dataA and dataB when you don't set -openmp, but is concerned when -openmp is set.  If those were function parameters, appropriate restrict qualifiers would be needed.  It's possible that the analysis might be affected by a change from default static allocation without -openmp to stack allocation with -openmp, or by the compiler correctly stopping in-lining when you set -openmp.


Intel Software Network Forums Statistics

8491 users have contributed to 31629 threads and 100770 posts to date.
In the past 24 hours, we have 28 new thread(s) 124 new posts(s), and 174 new user(s).

In the past 3 days, the most popular thread for everyone has been Implicite multithreading ??? The most posts were made to Crash when loading skeleton The post with the most views is Dear Steve, excuse me for a d

Please welcome our newest member shadowwolf99