From e95554dac8284a75c13f4650ef40eea76227282e Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 8 Mar 2021 12:08:37 +0100 Subject: [PATCH] i386: Enable UINTR and HRESET for -march that supports it gcc/ChangeLog: PR target/99463 * config/i386/i386-options.c (ix86_option_override_internal): Enable UINTR and HRESET for -march that supports it. gcc/testsuite/ChangeLog: PR target/99463 * gcc.target/i386/pr99463-2.c: New test. * gcc.target/i386/pr99463.c: New test. --- gcc/config/i386/i386-options.c | 7 +++++++ gcc/testsuite/gcc.target/i386/pr99463-2.c | 5 +++++ gcc/testsuite/gcc.target/i386/pr99463.c | 5 +++++ 3 files changed, 17 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr99463-2.c create mode 100644 gcc/testsuite/gcc.target/i386/pr99463.c diff --git a/gcc/config/i386/i386-options.c b/gcc/config/i386/i386-options.c index cdeabbfca4b5..410fa0cc436c 100644 --- a/gcc/config/i386/i386-options.c +++ b/gcc/config/i386/i386-options.c @@ -2354,6 +2354,13 @@ ix86_option_override_internal (bool main_args_p, if (((processor_alias_table[i].flags & PTA_PKU) != 0) && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_PKU)) opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PKU; + if (((processor_alias_table[i].flags & PTA_UINTR) != 0) + && !(opts->x_ix86_isa_flags2_explicit & OPTION_MASK_ISA2_UINTR)) + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_UINTR; + if (((processor_alias_table[i].flags & PTA_HRESET) != 0) + && !(opts->x_ix86_isa_flags2_explicit & OPTION_MASK_ISA2_HRESET)) + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_HRESET; + /* Don't enable x87 instructions if only general registers are allowed by target("general-regs-only") function attribute or diff --git a/gcc/testsuite/gcc.target/i386/pr99463-2.c b/gcc/testsuite/gcc.target/i386/pr99463-2.c new file mode 100644 index 000000000000..017ca9595108 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr99463-2.c @@ -0,0 +1,5 @@ +/* PR target/99463 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O2 -march=sapphirerapids" } */ + +#include "uintr-1.c" diff --git a/gcc/testsuite/gcc.target/i386/pr99463.c b/gcc/testsuite/gcc.target/i386/pr99463.c new file mode 100644 index 000000000000..0b2909241187 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr99463.c @@ -0,0 +1,5 @@ +/* PR target/99463 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=alderlake" } */ + +#include "hreset-1.c"