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.

-- 
BR,
Hongtao

Reply via email to