On Wed, Apr 1, 2020 at 9:27 AM Hongtao Liu <crazy...@gmail.com> wrote: > > Hi: > This patch is about to enable GCC support for TSXLDTRK which would > be in GLC. There's only 2 instructions: XRESLDTRK, XSUSLDTRK, more > details please > refer to > https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf > I know it's stage4 right now, and patches are approved only for bug > fixed, but since many users prefer to use release version other than > build from trunk, i'd like to see this patch land on GCC10, after > all it's only 2 instructions, without any significant changes. > > Bootstrap ok, regression test on i386/x86 backend is ok. > > gcc/Changelog > * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET, > OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros. > * config.gcc: Add tsxldtrkintrin.h to extra_headers. > * config/i386/driver-i386.c (host_detect_local_cpu): Detect > TSXLDTRK. > * config/i386/i386-builtin.def: Add new builtins. > * config/i386/i386-c.c (ix86_target_macros_internal): Define > __TSXLDTRK__. > * config/i386/i386-options.c (ix86_target_string): Add > -mtsxldtrk. > * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P): > New. > * config/i386/i386.md (define_c_enum "unspec"): Add > UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK. > (TSXLDTRK): New define_int_iterator. > ("<tsxldtrk>"): New define_insn. > * config/i386/i386.opt: Add -mtsxldtrk. > * config/i386/immintrin.h: Include tsxldtrkintrin.h. > * config/i386/tsxldtrkintrin.h: New. > * doc/invoke.texi: Document -mtsxldtrk. > > gcc/testsuite/Changelog > * g++.dg/other/i386-2.c: Add -mtsxldtrk. > * g++.dg/other/i386-3.c: Likewise. > * gcc.target/i386/sse-12.c: Likewise. > * gcc.target/i386/sse-13.c: Likewise. > * gcc.target/i386/sse-14.c: Likewise. > * gcc.target/i386/sse-22.c: Likewsie. > * gcc.target/i386/sse-23.c: Likewise. > * gcc.target/i386/tsxldtrk-1.c: New test.
The part above is OK, but you are missing support for __attribute__((__target__("..."))). Please see how for example -msgx is handled in isa2_opts in i386-options.c and in gcc.target/i386/funcspec-56.h test source. Please repost the patch with added missing part. Uros.