Re: [PATCH] Support Intel RAO-INT
On Sun, Nov 6, 2022 at 8:56 PM Kong, Lingling via Gcc-patches wrote: > > Hi, > The patches aimed to add Intel RAO-INT. > > The information is based on newly released > Intel Architecture Instruction Set Extensions and Future Features. > > The document comes following: > https://www.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html. > > OK for trunk? Ok. > > gcc/ChangeLog: > > * common/config/i386/cpuinfo.h (get_available_features): > Detect raoint. > * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET, > OPTION_MASK_ISA2_RAOINT_UNSET): New. > (ix86_handle_option): Handle -mraoint. > * common/config/i386/i386-cpuinfo.h (enum processor_features): > Add FEATURE_RAOINT. > * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for > raoint. > * config.gcc: Add raointintrin.h > * config/i386/cpuid.h (bit_RAOINT): New. > * config/i386/i386-builtin.def (BDESC): Add new builtins. > * config/i386/i386-c.cc (ix86_target_macros_internal): Define > __RAOINT__. > * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT). > * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): > Add -mraoint. > * config/i386/sync.md (rao_a): New define insn. > * config/i386/i386.opt: Add option -mraoint. > * config/i386/x86gprintrin.h: Include raointintrin.h. > * doc/extend.texi: Document raoint. > * doc/invoke.texi: Document -mraoint. > * doc/sourcebuild.texi: Document target raoint. > * config/i386/raointintrin.h: New file. > > gcc/testsuite/ChangeLog: > > * g++.dg/other/i386-2.C: Add -mraoint. > * g++.dg/other/i386-3.C: Ditto. > * gcc.target/i386/funcspec-56.inc: Add new target attribute. > * gcc.target/i386/sse-12.c: Add -mraoint. > * gcc.target/i386/sse-13.c: Ditto. > * gcc.target/i386/sse-14.c: Ditto. > * gcc.target/i386/sse-22.c: Add raoint target. > * gcc.target/i386/sse-23.c: Ditto. > * lib/target-supports.exp: Add check_effective_target_raoint. > * gcc.target/i386/rao-helper.h: New test. > * gcc.target/i386/raoint-1.c: Ditto. > * gcc.target/i386/raoint-aadd-2.c: Ditto. > * gcc.target/i386/raoint-aand-2.c: Ditto. > * gcc.target/i386/raoint-aor-2.c: Ditto. > * gcc.target/i386/raoint-axor-2.c: Ditto. > * gcc.target/i386/x86gprintrin-1.c: Ditto. > * gcc.target/i386/x86gprintrin-2.c: Ditto. > * gcc.target/i386/x86gprintrin-3.c: Ditto. > * gcc.target/i386/x86gprintrin-4.c: Ditto. > * gcc.target/i386/x86gprintrin-5.c: Ditto. > --- > gcc/common/config/i386/cpuinfo.h | 2 + > gcc/common/config/i386/i386-common.cc | 15 +++ > gcc/common/config/i386/i386-cpuinfo.h | 1 + > gcc/common/config/i386/i386-isas.h| 1 + > gcc/config.gcc| 3 +- > gcc/config/i386/cpuid.h | 1 + > gcc/config/i386/i386-builtin.def | 10 ++ > gcc/config/i386/i386-c.cc | 2 + > gcc/config/i386/i386-isa.def | 1 + > gcc/config/i386/i386-options.cc | 4 +- > gcc/config/i386/i386.opt | 4 + > gcc/config/i386/raointintrin.h| 101 ++ > gcc/config/i386/sync.md | 16 +++ > gcc/config/i386/x86gprintrin.h| 2 + > gcc/doc/extend.texi | 5 + > gcc/doc/invoke.texi | 11 +- > gcc/doc/sourcebuild.texi | 3 + > gcc/testsuite/g++.dg/other/i386-2.C | 2 +- > gcc/testsuite/g++.dg/other/i386-3.C | 2 +- > gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + > gcc/testsuite/gcc.target/i386/rao-helper.h| 79 ++ > gcc/testsuite/gcc.target/i386/raoint-1.c | 31 ++ > gcc/testsuite/gcc.target/i386/raoint-aadd-2.c | 24 + > gcc/testsuite/gcc.target/i386/raoint-aand-2.c | 25 + > gcc/testsuite/gcc.target/i386/raoint-aor-2.c | 25 + > gcc/testsuite/gcc.target/i386/raoint-axor-2.c | 25 + > gcc/testsuite/gcc.target/i386/sse-12.c| 2 +- > gcc/testsuite/gcc.target/i386/sse-13.c| 2 +- > gcc/testsuite/gcc.target/i386/sse-14.c| 2 +- > gcc/testsuite/gcc.target/i386/sse-22.c| 4 +- > gcc/testsuite/gcc.target/i386/sse-23.c| 2 +- > .../gcc.target/i386/x86gprintrin-1.c | 2 +- > .../gcc.target/i386/x86gprintrin-2.c | 2 +- > .../gcc.target/i386/x86gprintrin-3.c | 2 +- > .../gcc.target/i386/x86gprintrin-4.c | 4 +- > .../gcc.target/i386/x86gprintrin-5.c | 4 +- > gcc/testsuite/lib/target-supports.exp | 11 ++ > 37 files changed
[PATCH] Support Intel RAO-INT
Hi, The patches aimed to add Intel RAO-INT. The information is based on newly released Intel Architecture Instruction Set Extensions and Future Features. The document comes following: https://www.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html. OK for trunk? gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_available_features): Detect raoint. * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET, OPTION_MASK_ISA2_RAOINT_UNSET): New. (ix86_handle_option): Handle -mraoint. * common/config/i386/i386-cpuinfo.h (enum processor_features): Add FEATURE_RAOINT. * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for raoint. * config.gcc: Add raointintrin.h * config/i386/cpuid.h (bit_RAOINT): New. * config/i386/i386-builtin.def (BDESC): Add new builtins. * config/i386/i386-c.cc (ix86_target_macros_internal): Define __RAOINT__. * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT). * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): Add -mraoint. * config/i386/sync.md (rao_a): New define insn. * config/i386/i386.opt: Add option -mraoint. * config/i386/x86gprintrin.h: Include raointintrin.h. * doc/extend.texi: Document raoint. * doc/invoke.texi: Document -mraoint. * doc/sourcebuild.texi: Document target raoint. * config/i386/raointintrin.h: New file. gcc/testsuite/ChangeLog: * g++.dg/other/i386-2.C: Add -mraoint. * g++.dg/other/i386-3.C: Ditto. * gcc.target/i386/funcspec-56.inc: Add new target attribute. * gcc.target/i386/sse-12.c: Add -mraoint. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sse-22.c: Add raoint target. * gcc.target/i386/sse-23.c: Ditto. * lib/target-supports.exp: Add check_effective_target_raoint. * gcc.target/i386/rao-helper.h: New test. * gcc.target/i386/raoint-1.c: Ditto. * gcc.target/i386/raoint-aadd-2.c: Ditto. * gcc.target/i386/raoint-aand-2.c: Ditto. * gcc.target/i386/raoint-aor-2.c: Ditto. * gcc.target/i386/raoint-axor-2.c: Ditto. * gcc.target/i386/x86gprintrin-1.c: Ditto. * gcc.target/i386/x86gprintrin-2.c: Ditto. * gcc.target/i386/x86gprintrin-3.c: Ditto. * gcc.target/i386/x86gprintrin-4.c: Ditto. * gcc.target/i386/x86gprintrin-5.c: Ditto. --- gcc/common/config/i386/cpuinfo.h | 2 + gcc/common/config/i386/i386-common.cc | 15 +++ gcc/common/config/i386/i386-cpuinfo.h | 1 + gcc/common/config/i386/i386-isas.h| 1 + gcc/config.gcc| 3 +- gcc/config/i386/cpuid.h | 1 + gcc/config/i386/i386-builtin.def | 10 ++ gcc/config/i386/i386-c.cc | 2 + gcc/config/i386/i386-isa.def | 1 + gcc/config/i386/i386-options.cc | 4 +- gcc/config/i386/i386.opt | 4 + gcc/config/i386/raointintrin.h| 101 ++ gcc/config/i386/sync.md | 16 +++ gcc/config/i386/x86gprintrin.h| 2 + gcc/doc/extend.texi | 5 + gcc/doc/invoke.texi | 11 +- gcc/doc/sourcebuild.texi | 3 + gcc/testsuite/g++.dg/other/i386-2.C | 2 +- gcc/testsuite/g++.dg/other/i386-3.C | 2 +- gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + gcc/testsuite/gcc.target/i386/rao-helper.h| 79 ++ gcc/testsuite/gcc.target/i386/raoint-1.c | 31 ++ gcc/testsuite/gcc.target/i386/raoint-aadd-2.c | 24 + gcc/testsuite/gcc.target/i386/raoint-aand-2.c | 25 + gcc/testsuite/gcc.target/i386/raoint-aor-2.c | 25 + gcc/testsuite/gcc.target/i386/raoint-axor-2.c | 25 + gcc/testsuite/gcc.target/i386/sse-12.c| 2 +- gcc/testsuite/gcc.target/i386/sse-13.c| 2 +- gcc/testsuite/gcc.target/i386/sse-14.c| 2 +- gcc/testsuite/gcc.target/i386/sse-22.c| 4 +- gcc/testsuite/gcc.target/i386/sse-23.c| 2 +- .../gcc.target/i386/x86gprintrin-1.c | 2 +- .../gcc.target/i386/x86gprintrin-2.c | 2 +- .../gcc.target/i386/x86gprintrin-3.c | 2 +- .../gcc.target/i386/x86gprintrin-4.c | 4 +- .../gcc.target/i386/x86gprintrin-5.c | 4 +- gcc/testsuite/lib/target-supports.exp | 11 ++ 37 files changed, 413 insertions(+), 21 deletions(-) create mode 100644 gcc/config/i386/raointintrin.h create mode 100644 gcc/testsuite/gcc.target/i386/rao-helper.h create mode 100644 gcc/testsuite/gcc.target/i386/raoint-1.c create mode 100644 gcc/testsuite/gcc.target/i386/rao