<x86gprintrin.h> and target("general-regs-only") function attribute
were added to GCC 11.  But their implementations are incomplete.  I'd
like to backport the following patches to GCC 11 branch to finish them.

H.J. Lu (5):
  x86: Add -mmwait for -mgeneral-regs-only
  x86: Use crc32 target option for CRC32 intrinsics
  x86: Remove OPTION_MASK_ISA_SSE4_2 from CRC32 _builtin functions
  x86: Enable the GPR only instructions for -mgeneral-regs-only
  <x86gprintrin.h>: Add pragma GCC target("general-regs-only")

 gcc/common/config/i386/i386-common.c       |  45 ++-
 gcc/config.gcc                             |   6 +-
 gcc/config/i386/i386-builtin.def           |   8 +-
 gcc/config/i386/i386-builtins.c            |   4 +-
 gcc/config/i386/i386-c.c                   |   2 +
 gcc/config/i386/i386-options.c             |  12 +
 gcc/config/i386/i386.c                     |   6 +-
 gcc/config/i386/i386.h                     |   2 +
 gcc/config/i386/i386.md                    |   4 +-
 gcc/config/i386/i386.opt                   |   4 +
 gcc/config/i386/ia32intrin.h               |  42 ++-
 gcc/config/i386/mwaitintrin.h              |  52 +++
 gcc/config/i386/pmmintrin.h                |  13 +-
 gcc/config/i386/serializeintrin.h          |   7 +-
 gcc/config/i386/sse.md                     |   4 +-
 gcc/config/i386/x86gprintrin.h             |  13 +
 gcc/doc/extend.texi                        |   5 +
 gcc/doc/invoke.texi                        |   8 +-
 gcc/testsuite/gcc.target/i386/crc32-6.c    |  13 +
 gcc/testsuite/gcc.target/i386/monitor-2.c  |  27 ++
 gcc/testsuite/gcc.target/i386/pr101492-1.c |  10 +
 gcc/testsuite/gcc.target/i386/pr101492-2.c |  10 +
 gcc/testsuite/gcc.target/i386/pr101492-3.c |  10 +
 gcc/testsuite/gcc.target/i386/pr101492-4.c |  12 +
 gcc/testsuite/gcc.target/i386/pr99744-3.c  |  13 +
 gcc/testsuite/gcc.target/i386/pr99744-4.c  | 357 +++++++++++++++++++++
 gcc/testsuite/gcc.target/i386/pr99744-5.c  |  25 ++
 gcc/testsuite/gcc.target/i386/pr99744-6.c  |  23 ++
 gcc/testsuite/gcc.target/i386/pr99744-7.c  |  12 +
 gcc/testsuite/gcc.target/i386/pr99744-8.c  |  13 +
 30 files changed, 717 insertions(+), 45 deletions(-)
 create mode 100644 gcc/config/i386/mwaitintrin.h
 create mode 100644 gcc/testsuite/gcc.target/i386/crc32-6.c
 create mode 100644 gcc/testsuite/gcc.target/i386/monitor-2.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr101492-1.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr101492-2.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr101492-3.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr101492-4.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-3.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-4.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-5.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-6.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-7.c
 create mode 100644 gcc/testsuite/gcc.target/i386/pr99744-8.c

-- 
2.31.1

Reply via email to