Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7953 Discussions

Internal error 101004_111 while trying to autovectorize a loop

Isaacaa
Beginner
985 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
957 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!



0 Kudos
Viet_H_Intel
Moderator
929 Views

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


Thanks,


0 Kudos
Isaacaa
Beginner
921 Views

Hello,

 

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

0 Kudos
Viet_H_Intel
Moderator
568 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,



0 Kudos
Reply