Hello! > 2015-11-25 Victoria Stepanyan <victoria.stepan...@amd.com> > > * common/config/i386/i386-common.c > (OPTION_MASK_ISA_CLZERO_SET): New. > (ix86_handle_option): Handle clzero. > * config.gcc (i[34567]86-*-*): Add clzerointrin.h, > (x86_64-*-*): Likewise. > * config/i386/clzerointrin.h: New header. > * config/i386/cpuid.h (bit_CLZERO): Define. > * config/i386/driver-i386.c (host_detect_local_cpu): Detect > CLZERO support. > * config/i386/i386.opt (clzero): New. > * config/i386/i386-c.c: Define __CLZERO__ if needed. > * config/i386/i386.c (ix86_target_string): Define -mclzero option. > (PTA_CLZERO): New. > (ix86_option_override_internal): Handle new option. > (processor_alias_table): Added PTA_CLZERO. > (ix86_valid_target_attribute_inner_p): Add OPT_mclzero. > (ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO. > (ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and > IX86_BUILTIN_CLZERO built-ins. > * config/i386/i386.h (TARGET_CLZERO): New. > * config/i386/i386.md (unspecv): Add UNSPEC_CLZERO. > (clzero): New pattern. > (clzero_<mode>): New pattern. > * config/i386/x86intrin.h: Include clzerointrin.h. > * doc/extend.texi: Document clzero builtins. > * doc/invoke.texi: Document -mclzero option. > > gcc/testsuite/ChangeLog: > > 2015-11-25 Victoria Stepanyan <victoria.stepan...@amd.com> > > * gcc.target/i386/clzero.c: New. > * gcc.target/i386/sse-12.c: Add -mclzero. > * gcc.target/i386/sse-13.c: Ditto. > * gcc.target/i386/sse-14.c: Ditto. > * gcc.target/i386/sse-22.c: Ditto. > * gcc.target/i386/sse-23.c: Ditto. > * g++.dg/other/i386-2.C: Ditto. > * g++.dg/other/i386-3.C: Ditto. > > Ok for trunk ?
OK for mainline SVN with a few issues, mentioned below fixed. @@ -5902,6 +5905,7 @@ IX86_ATTR_ISA ("clwb", OPT_mclwb), IX86_ATTR_ISA ("pcommit", OPT_mpcommit), IX86_ATTR_ISA ("mwaitx", OPT_mmwaitx), + IX86_ATTR_ISA ("clzero", OPT_mclzero), Please use tab instead of spaces before OPT_mclzero. @@ -116,8 +116,8 @@ #define TARGET_SHA_P(x) TARGET_ISA_SHA_P(x) #define TARGET_CLFLUSHOPT TARGET_ISA_CLFLUSHOPT #define TARGET_CLFLUSHOPT_P(x) TARGET_ISA_CLFLUSHOPT_P(x) -#define TARGET_CLZERO TARGET_ISA_CLZERO -#define TARGET_CLZERO_P(x) TARGET_ISA_CLZERO_P(x) +#define TARGET_CLZERO TARGET_ISA_CLZERO +#define TARGET_CLZERO_P(x) TARGET_ISA_CLZERO_P(x) #define TARGET_XSAVEC TARGET_ISA_XSAVEC #define TARGET_XSAVEC_P(x) TARGET_ISA_XSAVEC_P(x) #define TARGET_XSAVES TARGET_ISA_XSAVES Unwanted change. +;; CLZERO +(define_insn "clzero_<mode>" + [(unspec_volatile [(match_operand:P 0 "register_operand" "a")] + UNSPECV_CLZERO)] + "TARGET_CLZERO" + "clzero" + [(set_attr "memory" "unknown")]) + Please also add (probably invariant) "length" attribute, see e.g. mwaitx insn. @@ -310,7 +310,7 @@ -fsanitize=@var{style} -fsanitize-recover -fsanitize-recover=@var{style} @gol -fasan-shadow-offset=@var{number} -fsanitize-sections=@var{s1},@var{s2},... @gol -fsanitize-undefined-trap-on-error @gol --fcheck-pointer-bounds -fchecking -fchkp-check-incomplete-type @gol +-fcheck-pointer-bounds -fchkp-check-incomplete-type @gol -fchkp-first-field-has-own-bounds -fchkp-narrow-bounds @gol -fchkp-narrow-to-innermost-array -fchkp-optimize @gol -fchkp-use-fast-string-functions -fchkp-use-nochk-string-functions @gol Unwanted change. @@ -6145,12 +6145,6 @@ functions for controlling the Pointer Bounds Checker. @xref{Pointer Bounds Checker builtins}, for more information. -@item -fchecking -@opindex fchecking -@opindex fno-checking -Enable internal consistency checking. The default depends on -the compiler configuration. - @item -fchkp-check-incomplete-type @opindex fchkp-check-incomplete-type @opindex fno-chkp-check-incomplete-type Unwanted change. Thanks, Uros.