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.

Reply via email to