public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Andrew Pinski <pinskia@gmail.com>
To: Tamar Christina <Tamar.Christina@arm.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>, nd <nd@arm.com>,
		"law@redhat.com" <law@redhat.com>, "ian@airs.com" <ian@airs.com>,
	"rguenther@suse.de" <rguenther@suse.de>
Subject: Re: [GCC][PATCH][mid-end] Optimize x * copysign (1.0, y) [Patch (1/2)]
Date: Sun, 09 Jul 2017 23:21:00 -0000	[thread overview]
Message-ID: <CA+=Sn1ksfQixAQdNSnaCpzixMP-2i7NjfcdJOS3cEiOXQtrnXQ@mail.gmail.com> (raw)
In-Reply-To: <VI1PR0801MB20316B7A94D73C180C266C15FFCD0@VI1PR0801MB2031.eurprd08.prod.outlook.com>

On Mon, Jun 12, 2017 at 12:56 AM, Tamar Christina
<Tamar.Christina@arm.com> wrote:
> Hi All,
>
> this patch implements a optimization rewriting
>
> x * copysign (1.0, y) and
> x * copysign (-1.0, y)
>
> to:
>
> x ^ (y & (1 << sign_bit_position))
>
> This is done by creating a special builtin during matching and generate the
> appropriate instructions during expand. This new builtin is called XORSIGN.
>
> The expansion of xorsign depends on if the backend has an appropriate optab
> available. If this is not the case then we use a modified version of the existing
> copysign which does not take the abs value of the first argument as a fall back.
>
> This patch is a revival of a previous patch
> https://gcc.gnu.org/ml/gcc-patches/2015-10/msg00069.html
>
> Bootstrapped on both aarch64-none-linux-gnu and x86_64 with no issues.
> Regression done on aarch64-none-linux-gnu and no regressions.


Note this is also PR 19706.

Thanks,
Andrew

>
> Ok for trunk?
>
> gcc/
> 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
>
>         * builtins.def (BUILT_IN_XORSIGN, BUILT_IN_XORSIGNF): New.
>         (BUILT_IN_XORSIGNL, BUILT_IN_XORSIGN_FLOAT_NX): Likewise.
>         * match.pd (mult (COPYSIGN:s real_onep @0) @1): New simplifier.
>         (mult (COPYSIGN:s real_mus_onep @0) @1): Likewise.
>         (copysigns @0 (negate @1)): Likewise.
>         * builtins.c (expand_builtin_copysign): Promoted local to argument.
>         (expand_builtin): Added CASE_FLT_FN_FLOATN_NX (BUILT_IN_XORSIGN) and
>         CASE_FLT_FN (BUILT_IN_XORSIGN).
>         (BUILT_IN_COPYSIGN): Updated function call.
>         * optabs.h (expand_copysign): New bool.
>         (expand_xorsign): New.
>         * optabs.def (xorsign_optab): New.
>         * optabs.c (expand_copysign): New parameter.
>         * fortran/f95-lang.c (xorsignl, xorsign, xorsignf): New.
>         * fortran/mathbuiltins.def (XORSIGN): New.
>
> gcc/testsuite/
> 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
>
>         * gcc.dg/tree-ssa/xorsign.c: New.
>         * gcc.dg/xorsign_exec.c: New.
>         * gcc.dg/vec-xorsign_exec.c: New.
>         * gcc.dg/tree-ssa/reassoc-39.c (f2, f3): Updated constant to 2.

  parent reply	other threads:[~2017-07-09 23:21 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-12  7:56 Tamar Christina
2017-06-12  9:10 ` Richard Biener
2017-06-12 16:27   ` Richard Sandiford
2017-06-13 10:22     ` Tamar Christina
2017-06-13 10:17   ` Tamar Christina
2017-06-12 16:52 ` Joseph Myers
2017-06-12 19:50 ` Michael Meissner
2017-06-13 10:14   ` Tamar Christina
2017-06-24 23:53 ` Andrew Pinski
2017-06-26  2:09   ` Andrew Pinski
2017-06-26  8:46     ` Tamar Christina
2017-06-26  7:26   ` Richard Biener
2017-07-09 23:21 ` Andrew Pinski [this message]
2017-07-10 15:47   ` Tamar Christina
2017-07-18  8:05     ` Tamar Christina
2017-07-18  8:38     ` Richard Biener
2017-07-18  9:22       ` Tamar Christina
2017-07-18 10:19         ` Richard Biener
2017-07-18 11:00           ` Tamar Christina
2017-07-18 11:19             ` Richard Biener
2017-07-18 11:24               ` Tamar Christina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+=Sn1ksfQixAQdNSnaCpzixMP-2i7NjfcdJOS3cEiOXQtrnXQ@mail.gmail.com' \
    --to=pinskia@gmail.com \
    --cc=Tamar.Christina@arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=ian@airs.com \
    --cc=law@redhat.com \
    --cc=nd@arm.com \
    --cc=rguenther@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).