From cbd3b88382b5aea2781a2b7b34b0f27b4d0b19a0 Mon Sep 17 00:00:00 2001 From: Haochen Jiang Date: Thu, 24 Aug 2023 14:38:18 +0800 Subject: [PATCH] Revert "Emit a warning when disabling AVX512 with AVX10 enabled or disabling AVX10 with AVX512 enabled" This reverts commit 0288ab14732a16b3787546cdd159941eb7306cf3. --- gcc/common/config/i386/i386-common.cc | 68 +++++----------------- gcc/config/i386/driver-i386.cc | 2 +- gcc/testsuite/gcc.target/i386/avx10_1-11.c | 5 -- gcc/testsuite/gcc.target/i386/avx10_1-12.c | 13 ----- gcc/testsuite/gcc.target/i386/avx10_1-13.c | 5 -- gcc/testsuite/gcc.target/i386/avx10_1-14.c | 13 ----- 6 files changed, 15 insertions(+), 91 deletions(-) delete mode 100644 gcc/testsuite/gcc.target/i386/avx10_1-11.c delete mode 100644 gcc/testsuite/gcc.target/i386/avx10_1-12.c delete mode 100644 gcc/testsuite/gcc.target/i386/avx10_1-13.c delete mode 100644 gcc/testsuite/gcc.target/i386/avx10_1-14.c diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc index 7c4a87a454d7..9a3590fa3467 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -388,46 +388,6 @@ set_malign_value (const char **flag, unsigned value) *flag = r; } -/* Emit a warning when using -mno-avx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2, - vnni,ifma,bitalg,vpopcntdq} with -mavx10.1 and above. */ -static bool -ix86_check_avx10 (struct gcc_options *opts) -{ - if (opts->x_ix86_isa_flags2 & opts->x_ix86_isa_flags2_explicit - & OPTION_MASK_ISA2_AVX10_1) - { - warning (0, "%<-mno-avx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni,ifma," - "bitalg,vpopcntdq}%> are ignored with %<-mavx10.1%> and above"); - return false; - } - - return true; -} - -/* Emit a warning when using -mno-avx10.1 with -mavx512{f,vl,bw,dq,cd,bf16, - fp16,vbmi,vbmi2,vnni,ifma,bitalg,vpopcntdq}. */ -static bool -ix86_check_avx512 (struct gcc_options *opts) -{ - if ((opts->x_ix86_isa_flags & opts->x_ix86_isa_flags_explicit - & (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD - | OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512BW - | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512IFMA - | OPTION_MASK_ISA_AVX512VBMI | OPTION_MASK_ISA_AVX512VBMI2 - | OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VPOPCNTDQ - | OPTION_MASK_ISA_AVX512BITALG)) - || (opts->x_ix86_isa_flags2 & opts->x_ix86_isa_flags2_explicit - & (OPTION_MASK_ISA2_AVX512FP16 | OPTION_MASK_ISA2_AVX512BF16))) - { - warning (0, "%<-mno-avx10.1%> is ignored when using with " - "%<-mavx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni," - "ifma,bitalg,vpopcntdq}%>"); - return false; - } - - return true; -} - /* Implement TARGET_HANDLE_OPTION. */ bool @@ -649,7 +609,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512F_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512F_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512F_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512F_UNSET; @@ -664,7 +624,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512CD_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512CD_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512CD_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512CD_UNSET; @@ -938,7 +898,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512VBMI2_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI2_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VBMI2_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI2_UNSET; @@ -953,7 +913,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512FP16_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512FP16_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512FP16_UNSET; opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512FP16_UNSET; @@ -966,7 +926,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512VNNI_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VNNI_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VNNI_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VNNI_UNSET; @@ -980,7 +940,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET; opts->x_ix86_isa_flags_explicit @@ -994,7 +954,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512BITALG_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512BITALG_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512BITALG_UNSET; opts->x_ix86_isa_flags_explicit @@ -1010,7 +970,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512BW_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512BW_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512BF16_UNSET; opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512BF16_UNSET; @@ -1077,7 +1037,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512DQ_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512DQ_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512DQ_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512DQ_UNSET; @@ -1090,7 +1050,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512BW_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512BW_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512BW_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512BW_UNSET; @@ -1105,7 +1065,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512VL_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VL_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VL_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VL_UNSET; @@ -1118,7 +1078,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512IFMA_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512IFMA_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512IFMA_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512IFMA_UNSET; @@ -1131,7 +1091,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512VBMI_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI_SET; } - else if (ix86_check_avx10 (opts)) + else { opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VBMI_UNSET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI_UNSET; @@ -1407,7 +1367,7 @@ ix86_handle_option (struct gcc_options *opts, opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX2_SET; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX2_SET; } - else if (ix86_check_avx512 (opts)) + else { opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_UNSET; opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_UNSET; diff --git a/gcc/config/i386/driver-i386.cc b/gcc/config/i386/driver-i386.cc index 227ace6ff83b..08d0aed61837 100644 --- a/gcc/config/i386/driver-i386.cc +++ b/gcc/config/i386/driver-i386.cc @@ -854,7 +854,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) options = concat (options, " ", isa_names_table[i].option, NULL); } - else if (isa_names_table[i].feature != FEATURE_AVX10_1) + else options = concat (options, neg_option, isa_names_table[i].option + 2, NULL); } diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-11.c b/gcc/testsuite/gcc.target/i386/avx10_1-11.c deleted file mode 100644 index 10c8d781dd9c..000000000000 --- a/gcc/testsuite/gcc.target/i386/avx10_1-11.c +++ /dev/null @@ -1,5 +0,0 @@ -/* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -march=x86-64 -mavx10.1 -mno-avx512f" } */ -/* { dg-warning "'-mno-avx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni,ifma,bitalg,vpopcntdq}' are ignored with '-mavx10.1' and above" "" { target *-*-* } 0 } */ - -#include "avx10_1-1.c" diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-12.c b/gcc/testsuite/gcc.target/i386/avx10_1-12.c deleted file mode 100644 index b79c92ad0027..000000000000 --- a/gcc/testsuite/gcc.target/i386/avx10_1-12.c +++ /dev/null @@ -1,13 +0,0 @@ -/* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2" } */ - -#include - -__attribute__ ((target ("avx10.1,no-avx512f"))) void -f1 () -{ /* { dg-warning "'-mno-avx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni,ifma,bitalg,vpopcntdq}' are ignored with '-mavx10.1' and above" } */ - register __m256d a __asm ("ymm17"); - register __m256d b __asm ("ymm16"); - a = _mm256_add_pd (a, b); - asm volatile ("" : "+v" (a)); -} diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-13.c b/gcc/testsuite/gcc.target/i386/avx10_1-13.c deleted file mode 100644 index 156d59f1d350..000000000000 --- a/gcc/testsuite/gcc.target/i386/avx10_1-13.c +++ /dev/null @@ -1,5 +0,0 @@ -/* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -march=x86-64 -mavx512f -mno-avx10.1" } */ -/* { dg-warning "'-mno-avx10.1' is ignored when using with '-mavx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni,ifma,bitalg,vpopcntdq}'" "" { target *-*-* } 0 } */ - -#include "avx10_1-2.c" diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-14.c b/gcc/testsuite/gcc.target/i386/avx10_1-14.c deleted file mode 100644 index 23d2ba8bc640..000000000000 --- a/gcc/testsuite/gcc.target/i386/avx10_1-14.c +++ /dev/null @@ -1,13 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=x86-64" } */ -/* { dg-final { scan-assembler "%zmm" } } */ - -typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__)); - -__attribute__ ((target ("avx512f,no-avx10.1"))) __m512d -foo () -{ /* { dg-warning "'-mno-avx10.1' is ignored when using with '-mavx512{f,vl,bw,dq,cd,bf16,fp16,vbmi,vbmi2,vnni,ifma,bitalg,vpopcntdq}'" } */ - __m512d a, b; - a = a + b; - return a; -} -- 2.47.2