https://gcc.gnu.org/g:e15216046dba02ffa1c3ae367cdc86d5fd3df0be

commit r15-7582-ge15216046dba02ffa1c3ae367cdc86d5fd3df0be
Author: Haochen Jiang <haochen.ji...@intel.com>
Date:   Mon Feb 10 16:53:27 2025 +0800

    i386: Do not check vector size conflict when AVX512 is not explicitly set 
[PR 118815]
    
    When AVX512 is not explicitly set, we should not take EVEX512 bit into
    consideration when checking vector size. It will solve the intrin header
    file reporting warnings when compiling with -Wsystem-headers.
    
    However, there is side effect on the usage for '-march=xxx -mavx10.1-256',
    where xxx is with AVX512. It will not report warning on vector size for now.
    Since it is a rare usage, we will take it.
    
    gcc/ChangeLog:
    
            PR target/118815
            * config/i386/i386-options.cc (ix86_option_override_internal):
            Do not check vector size conflict when AVX512 is not explicitly
            set.
    
    gcc/testsuite/ChangeLog:
    
            PR target/118815
            * gcc.target/i386/pr118815.c: New test.

Diff:
---
 gcc/config/i386/i386-options.cc          | 1 +
 gcc/testsuite/gcc.target/i386/pr118815.c | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index 3467ab0bbebc..7e85334d3d36 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -2711,6 +2711,7 @@ ix86_option_override_internal (bool main_args_p,
                        "using 512 as max vector size");
        }
       else if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
+              && (opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_AVX512F)
               && !(OPTION_MASK_ISA2_EVEX512
                    & opts->x_ix86_isa_flags2_explicit))
        warning (0, "Vector size conflicts between AVX10.1 and AVX512, using "
diff --git a/gcc/testsuite/gcc.target/i386/pr118815.c 
b/gcc/testsuite/gcc.target/i386/pr118815.c
new file mode 100644
index 000000000000..84308fce08a8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr118815.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=x86-64-v3" } */
+
+#pragma GCC push_options
+#pragma GCC target("avx10.2-256")
+
+void foo();
+
+#pragma GCC pop_options

Reply via email to