]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Define mask as extern instead of uninitialized local variables.
authorliuhongt <hongtao.liu@intel.com>
Wed, 26 Jun 2024 03:17:46 +0000 (11:17 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 1 Jul 2024 01:09:59 +0000 (09:09 +0800)
The testcases are supposed to scan for vpopcnt{b,w,d,q} operations
with k mask, but mask is defined as uninitialized local variable which
will be set as 0 at rtl expand phase.
And it's further simplified off by late_combine which caused scan assembly failure.
Move the definition of mask outside to make the testcases more stable.

gcc/testsuite/ChangeLog:

PR target/115610
* gcc.target/i386/avx512bitalg-vpopcntb.c: Define mask as
extern instead of uninitialized local variables.
* gcc.target/i386/avx512bitalg-vpopcntbvl.c: Ditto.
* gcc.target/i386/avx512bitalg-vpopcntw.c: Ditto.
* gcc.target/i386/avx512bitalg-vpopcntwvl.c: Ditto.
* gcc.target/i386/avx512vpopcntdq-vpopcntd.c: Ditto.
* gcc.target/i386/avx512vpopcntdq-vpopcntq.c: Ditto.

gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c
gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c
gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c
gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c
gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd.c
gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq.c

index 44b82c0519db9e5d60a167fcc08fa5b9996c4957..66d24107c26f10270cdb7845c66178944f37b7f9 100644 (file)
@@ -7,10 +7,9 @@
 #include <x86intrin.h>
 
 extern __m512i z, z1;
-
+extern __mmask16 msk;
 int foo ()
 {
-  __mmask16 msk;
   __m512i c = _mm512_popcnt_epi8 (z);
   asm volatile ("" : "+v" (c));
   c = _mm512_mask_popcnt_epi8 (z1, msk, z);
index 8c2dfaba9c6dd773559acb84e0533a0bc89a799d..8ab05653f7c0e965b425468937050aa6da433a04 100644 (file)
 
 extern __m256i y, y_1;
 extern __m128i x, x_1;
+extern __mmask32 msk32;
+extern __mmask16 msk16;
 
 int foo ()
 {
-  __mmask32 msk32;
-  __mmask16 msk16;
   __m256i c256 = _mm256_popcnt_epi8 (y);
   asm volatile ("" : "+v" (c256));
   c256 = _mm256_mask_popcnt_epi8 (y_1, msk32, y);
index 2ef8589f6c13fa0cc59c678605d184ec467fe3ee..c741bf48a517f911f9aa0fa2073e0155f944c996 100644 (file)
@@ -7,10 +7,10 @@
 #include <x86intrin.h>
 
 extern __m512i z, z1;
+extern __mmask16 msk;
 
 int foo ()
 {
-  __mmask16 msk;
   __m512i c = _mm512_popcnt_epi16 (z);
   asm volatile ("" : "+v" (c));
   c = _mm512_mask_popcnt_epi16 (z1, msk, z);
index c976461b12ee9cbb55cc9a4595368f794228dbeb..79bb3c31e85cf08d8be11b7092bd8264cdbceca2 100644 (file)
 
 extern __m256i y, y_1;
 extern __m128i x, x_1;
+extern __mmask16 msk16;
+extern __mmask8 msk8;
 
 int foo ()
 {
-  __mmask16 msk16;
-  __mmask8 msk8;
   __m256i c256 = _mm256_popcnt_epi16 (y);
   asm volatile ("" : "+v" (c256));
   c256 = _mm256_mask_popcnt_epi16 (y_1, msk16, y);
index b4d82f9703255b50ed86a42781f6678cde83b3e8..776a4753d8e003c37eace44ab9abf14b372d71b4 100644 (file)
 extern __m128i x, x_1;
 extern __m256i y, y_1;
 extern __m512i z, z_1;
+extern  __mmask16 msk;
+extern  __mmask8 msk8;
+
 
 int foo ()
 {
-  __mmask16 msk;
-  __mmask8 msk8;
   __m128i a = _mm_popcnt_epi32 (x);
   asm volatile ("" : "+v" (a));
   a = _mm_mask_popcnt_epi32 (x_1, msk8, x);
index e87d6c999b6369a5db94ab521b4fe4a9671396a1..c6314ac5debcc642ae0916bef35f30d379c5c3ed 100644 (file)
 extern __m128i x, x_1;
 extern __m256i y, y_1;
 extern __m512i z, z_1;
+extern __mmask8 msk; 
 
 int foo ()
 {
-  __mmask8 msk; 
   __m128i a = _mm_popcnt_epi64 (x);
   asm volatile ("" : "+v" (a));
   a = _mm_mask_popcnt_epi64 (x_1, msk, x);