Integrated: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays)

Florian Weimer fw at deneb.enyo.de
Sat Oct 7 13:25:19 UTC 2023


I believe this has introduced a build failure with GCC 12.2 on Debian 12.1:

Building target 'jdk' in configuration '/home/fw/build/jdk'
In file included from /usr/lib/gcc/x86_64-linux-gnu/12/include/immintrin.h:49,
                 from …/jdk/src/java.base/linux/native/libsimdsort/avx512-common-qsort.h:60,
                 from …/jdk/src/java.base/linux/native/libsimdsort/avx512-32bit-qsort.hpp:31,
                 from …/jdk/src/java.base/linux/native/libsimdsort/avx512-linux-qsort.cpp:26:
In function '__m512i _mm512_shuffle_epi32(__m512i, _MM_PERM_ENUM)',
    inlined from 'static zmm_vector<int>::zmm_t zmm_vector<int>::shuffle(zmm_t) [with unsigned char mask = 177]' at …/jdk/src/java.base/linux/native/libsimdsort/avx512-32bit-qsort.hpp:96:36,
    inlined from 'zmm_t sort_zmm_32bit(zmm_t) [with vtype = zmm_vector<int>; zmm_t = __vector(8) long long int]' at …/jdk/src/java.base/linux/native/libsimdsort/avx512-32bit-qsort.hpp:170:27:
/usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:4459:50: error: '__Y' is used uninitialized [-Werror=uninitialized]
 4459 |   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
 4460 |                                                   __mask,
      |                                                   ~~~~~~~
 4461 |                                                   (__v16si)
      |                                                   ~~~~~~~~~
 4462 |                                                   _mm512_undefined_epi32 (),
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~
 4463 |                                                   (__mmask16) -1);
      |                                                   ~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h: In function 'zmm_t sort_zmm_32bit(zmm_t) [with vtype = zmm_vector<int>; zmm_t = __vector(8) long long int]':
/usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:206:11: note: '__Y' was declared here
  206 |   __m512i __Y = __Y;
      |           ^~~


More information about the build-dev mailing list