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

Incorrect result when breaking up 512-bit vector into 4 128-bit vectors

nemequ
New Contributor I
1,077 Views

I'm trying to implement the _mm512_adds_epu8 function for CPUs which don't support it, and CI picked up a problem with ICC earlier today.  The problem occurs when attempting to call a portable implementation of _mm_adds_epu8 4 times in a loop to emulate the _mm512_adds_epu8 function.  GCC and clang work as expected.

Unfortunately I've had a hard time putting together a reduced test case; when I tried I ended up with an internal compiler error.  AFAICT that reduced test case should work (GCC and clang are fine with it), so I'm attaching it too… maybe it's related.

The original test is gigantic as it includes tons of unrelated code, but it actually compiles.  The result is just incorrect.

This is with icc 19.1 20200117 on (and targeting) Linux x86_64 (Fedora 31).

0 Kudos
1 Solution
Alina_S_Intel
Employee
1,011 Views

The fix is now available in Intel® Parallel Studio XE 2020 Update 4.



View solution in original post

3 Replies
AbhishekD_Intel
Moderator
1,077 Views

Hi,

We also experienced the same error while using the ICC compiler with #define USE_128. We have reported this to our concerned team they will get back to you soon.

Thank You

-Abhishek 

0 Kudos
Viet_H_Intel
Moderator
1,077 Views

Thanks, I've reported this case to our Developer.

0 Kudos
Alina_S_Intel
Employee
1,012 Views

The fix is now available in Intel® Parallel Studio XE 2020 Update 4.



Reply