- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From someone who is working with our code:
In debugging another project I discovered that the Intel Fortran automatic vectorizer is apparently broken in current 13.1 and 14.0, emitting bad code for some loop constructs. (I am only using the Windows versions so I can't say whether the Linux compilers are also broken but I would expect vectorizer code to be h/w specific but cross-platform.) The vectorizer is active automatically at /O2 and /O3 optimization level. I have disabled it with the /Qvec- option. I thought this might help you avoid some debugging hours at some point.
It also sounds like 14.0 is not production-ready with some vital fixes in the works for the first update, so it might be best to defer on switching to it.
From me: Is this true? Should we just go back to V13?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, there's nothing we can do with such vague descriptions. We extensively beta-tested 14 and ran tens of thousands of our own tests. To say that the vectorizer is "broken" in two releases is not a correct statement. Please ask your colleague to provide us with a test case, and we'll be glad to look at it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The only indication I have is that answers changed between the two compiler releases -- but I think others are showing different examples.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried the /Qvec- as suggested in a different thread. Only one file had any differences out of our 400+ files. No time impact.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I found that /Qvec- has no effect where !dir$ simd is in effect; in that case reducing to -O1 is more likely to surface differences associated with vectorization.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Don't think we have any !dir$ simd in our code. would some compiler setting also set that?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No - if you're not using directives to force vectorization, then it's not an issue. I did get a test case from one of your coworkers.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, I saw that. Same results (diffs) with Opt=1, Qvec-. Oddly, they look similar to a time in the past when we had to disable inline functions because of some other compiler switch that we needed for the c libraries that are included. Dunno if they ARE the same, just look it -- I will need the developer of that module to take a look.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page