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.
7680 Discussions

Internal error 101004_111 while trying to autovectorize a loop

Isaacaa
Beginner
483 Views

Hello,

 

I'm having some problems in getting the Intel compiler to autovectorise one loop, giving an internal error.

 

I already refactored my code to be able to vectorize following the vectorization reports (thanks for such an amazing tool, btw).

However, with the newer versions (sadly I can not tell from which exactly... I can only say that it worked with intel/2017.4) the same code fails to compile with "internal error: 101004_111".

I have been able to isolate the problem and found a workaround. I have attached an example.

The problem seems to appear when, inside the loop to be vectorized, I do an inner loop and call a function as (3 iterations only):

function(..., array[0], ...)
function(..., array[1], ...)
function(..., array[2], ...)

 instead of

for (int j=0; j<3; j++) function(..., array[j], ...)

 

Of course, if I disable optimizations, the loop is not vectorized and compiles succesfully.

 

I have attached the code to reproduce the problem:

icc -O3 -qopt-report=2 -DGETERROR test.c

Last tested with icc (ICC) 2021.3.0 20210609

 

It is not a critical problem because I found a workaround... but the first option should still work and I suspect that there may be a bug in the compiler.

 

Thanks

Isaac

0 Kudos
4 Replies
ArpitaP_Intel
Moderator
455 Views

Hi Isaac,


Thanks for reaching out to us.


We could reproduce your issue using icc compiler.

We are working on it. We will get back to you soon.

Meanwhile, can you try using the icx compiler instead of icc.


Thanks!



Viet_H_Intel
Moderator
427 Views

I've filed this bug to our Developer. Please use your workaround or icx instead of icc as Arpita mentioned.


Thanks,


Isaacaa
Beginner
419 Views

Hello,

 

Thanks for the answers, I will use the workaround while I start to migrate to icx.

Viet_H_Intel
Moderator
66 Views

Hi,


We won't fix this issue in Classic C++ Compiler. Please use DPC++ Compiler (icx) instead.


I am going to close this case as "won't fix"


Regards,



Reply