Hi,

This patch enables RDPID intrinsic, described in SDM 4-534 Vol. 2B
https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf
and intrinsic guide:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=rdpi&expand=2778,2777,4219

gcc/
        * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
        (OPTION_MASK_ISA_PKU_UNSET): New.
        (ix86_handle_option): Handle -mrdpid.
        * config/i386/cpuid.h
        (bit_RDPID): New.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect RDPID 
feature.
        * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle RDPID flag.
        * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
        (ix86_valid_target_attribute_inner_p): Add "rdpid".
        (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
        * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
        * config/i386/i386.md (define_insn "rdpid"): New.
        * config/i386/i386.opt Add -mrdpid.
        * config/i386/immintrin.h (_rdpid_u32): New.
        * testsuite/gcc.target/i386/rdpid.c New test.

Ok for trunk?

Julia

Attachment: rdpid_patch_2_15
Description: rdpid_patch_2_15

Reply via email to