On Mon, Mar 8, 2021 at 2:52 PM Martin Liška <mli...@suse.cz> wrote: > > Hi. > > The bug is about usage of ix86_isa_flags instead of opts->x_ix86_isa_flags. > I'm planning a bigger refactoring regarding the flags & PTA_PCLMUL conditions. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed? > Thanks, > Martin > > gcc/ChangeLog: > > PR target/99464 > * config/i386/i386-options.c (ix86_option_override_internal): > Set isa_flags for OPTS argument and not for the global > global_options. > > gcc/testsuite/ChangeLog: > > PR target/99464 > * gcc.target/i386/pr99464.c: New test.
OK. Thanks, Uros. > --- > gcc/config/i386/i386-options.c | 8 ++++---- > gcc/testsuite/gcc.target/i386/pr99464.c | 15 +++++++++++++++ > 2 files changed, 19 insertions(+), 4 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/i386/pr99464.c > > diff --git a/gcc/config/i386/i386-options.c b/gcc/config/i386/i386-options.c > index cdeabbfca4b..982c335e1fa 100644 > --- a/gcc/config/i386/i386-options.c > +++ b/gcc/config/i386/i386-options.c > @@ -2159,11 +2159,11 @@ ix86_option_override_internal (bool main_args_p, > && !(opts->x_ix86_isa_flags2_explicit & OPTION_MASK_ISA2_MOVBE)) > opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_MOVBE; > if (((processor_alias_table[i].flags & PTA_AES) != 0) > - && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_AES)) > - ix86_isa_flags |= OPTION_MASK_ISA_AES; > + && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_AES)) > + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AES; > if (((processor_alias_table[i].flags & PTA_SHA) != 0) > - && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_SHA)) > - ix86_isa_flags |= OPTION_MASK_ISA_SHA; > + && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_SHA)) > + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_SHA; > if (((processor_alias_table[i].flags & PTA_PCLMUL) != 0) > && !(opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_PCLMUL)) > opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PCLMUL; > diff --git a/gcc/testsuite/gcc.target/i386/pr99464.c > b/gcc/testsuite/gcc.target/i386/pr99464.c > new file mode 100644 > index 00000000000..98dd938973e > --- /dev/null > +++ b/gcc/testsuite/gcc.target/i386/pr99464.c > @@ -0,0 +1,15 @@ > +/* PR target/99464 */ > +/* { dg-do compile } */ > +/* { dg-options "-O2" } */ > + > +#pragma GCC target("arch=cannonlake") > + > +#include <immintrin.h> > + > +volatile __m128i x; > + > +void extern > +sha_test (void) > +{ > + x = _mm_sha1msg1_epu32 (x, x); > +} > -- > 2.30.1 >