Hi Uros,
> -----Original Message----- > From: Stepanyan, Victoria > Sent: Thursday, November 26, 2015 1:43 AM > To: Uros Bizjak; gcc-patches@gcc.gnu.org > Cc: Kumar, Venkataramanan > Subject: RE: Add support for CLZERO ISA > > Thank you for the feedback, PFA fixed patch. > > Victoria > > > -----Original Message----- > From: Uros Bizjak [mailto:ubiz...@gmail.com] > Sent: Wednesday, November 25, 2015 11:32 > To: gcc-patches@gcc.gnu.org > Cc: Stepanyan, Victoria; Kumar, Venkataramanan > Subject: Re: Add support for CLZERO ISA > > 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. Up streamed the patch on behalf of Victoria. https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=231340 Regards, Venkat. > > @@ -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.