Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
1135 Discussions

Bug in Intel SDE 9.27 and later with emulating AVX512BW VPMADDWD instruction

JohnPlatts
Beginner
4,240 Views

Issue Description: There is a bug in Intel Software Development Emulator (SDE) 9.27 and later where the AVX512BW VPMADDWD zmm, zmm, zmm instruction is incorrectly emulated for the case where (-32768 * -32768 + -32768 * -32768).

System Information:

  • Operating System: Ubuntu 24.04
  • Intel SDE Version: 9.53

Steps Taken:

  1. Compiled the avx512_vpmaddwd_tester_060325_gcc12_avx3.cpp C++ test program (which can be downloaded from https://gist.github.com/johnplatts/7e1ecde538d754fcbe63501a506e6b42) using GCC or Clang (with the -march=skylake-avx512 option).
  2. Executed the below test program on both machines with Intel CPU's supporting AVX512BW, and with different versions of Intel Software Development Emulator on a Linux system supporting AVX2 but not AVX512BW.
  3. Discovered mismatch between the results of the emulated AVX512BW VPMADDWD zmm, zmm, zmm instruction and the AVX2 VPMADDWD ymm, ymm, ymm instructions and AVX VPMADDWD xmm, xmm, xmm instructions for the (-32768 * -32768 + -32768 * -32768) case (where the emulated AVX512BW VPMADDWD instruction incorrectly saturates the result to 2147483647 whereas the AVX2 VPMADDWD and AVX VPMADDWD instructions return the expected -2147483648 result for this case) when running the test program with Intel SDE 9.27 or later on a Linux system supporting AVX2 but not AVX512BW.

The bug that occurs with emulating the AVX512BW VPMADDWD zmm, zmm, zmm instruction with Intel SDE 9.27 or later does not happen with Intel SDE 9.24 (even when running on a system with an Intel CPU that does not support AVX512) or on actual Intel CPU's supporting AVX512BW.

0 Kudos
0 Replies
Reply