This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Add support for CLZERO ISA


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:ubizjak@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.stepanyan@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.stepanyan@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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]