- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greetings,
using up-to date ICC 15 since ICC 16 is buggy and produces wrong code at least if it compiles the correct code...
how could I interpret source c++ file and line number from assembler output like:
$LN30110: ; LOE rax rdx rcx rbx rsi r8 r9 r10 f1 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 .B183.54:: ; Preds .B183.213 .B183.53 L2185:: ; optimization report ; outer %s was not auto-vectorized: consider using SIMD directive
so I can write "#pragma simd noassert" ?
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, VooDooMan
The "outer %s was not auto-vectorized: consider using SIMD directive" tells it's possible to vectorize the outer loop if the inner loop cannot be auto-vectorized.
Since SIMD directive supports outer loop vetorization, while it is not normally supported by auto-vectorization.
Yes, I agree with you the %s can be more meaningful here to avoid any confusion. I will check with engineer for this.
To vectorize outer loop, you need to put the SIMD directive right before the outer for loop, for example:
#pragma simd for (int i=0; i<N; i++) { for (int j=0; j<10; j++) data += j; }
Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
NB: I use IPO
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
...and isn't a "%s" a formatting syntax? shouldn't it be replaced by something more meaningful?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, VooDooMan
The "outer %s was not auto-vectorized: consider using SIMD directive" tells it's possible to vectorize the outer loop if the inner loop cannot be auto-vectorized.
Since SIMD directive supports outer loop vetorization, while it is not normally supported by auto-vectorization.
Yes, I agree with you the %s can be more meaningful here to avoid any confusion. I will check with engineer for this.
To vectorize outer loop, you need to put the SIMD directive right before the outer for loop, for example:
#pragma simd for (int i=0; i<N; i++) { for (int j=0; j<10; j++) data += j; }
Thanks.

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