public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Kyrill  Tkachov <kyrylo.tkachov@foss.arm.com>
To: Jakub Jelinek <jakub@redhat.com>,
	 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>,
	Mike Stump <mikestump@comcast.net>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] Fix PR tree-optimization/83195 testcase for arm
Date: Wed, 29 Nov 2017 16:15:00 -0000	[thread overview]
Message-ID: <5A1ECE2D.9060608@foss.arm.com> (raw)
In-Reply-To: <20171129081851.GV2353@tucnak>

Hi Jakub,

On 29/11/17 08:18, Jakub Jelinek wrote:
> Hi!
>
> The pr82929.c testcase uses store_merge effective target, which is
> int32plus && nonstrict_align.  Unfortunately, arm is handled for
> nonstrict_align wierdly, although it has STRICT_ALIGNMENT 1, it is sometimes
> considered nonstrict_align (the only exception apparently).
>
> Now, the testcase really needs a non-strict alignment target where
> STRICT_ALIGNMENT is 0, otherwise the optimization it tests is not
> beneficial.  So, the following patch stops testing it on arm, and adds
> another test where the pointers are guaranteed to be aligned and thus we
> can test for the optimization even on non-strict alignment targets.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, tested by hand using
> a cross-compiler to arm, ok for trunk?
>
> 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
>
> 	PR tree-optimization/83195
> 	* gcc.dg/pr82929.c: Don't check for "Merging successful" on arm.
> 	* gcc.dg/pr82929-2.c: New test.
>
> --- gcc/testsuite/gcc.dg/pr82929.c.jj	2017-11-10 15:42:39.000000000 +0100
> +++ gcc/testsuite/gcc.dg/pr82929.c	2017-11-28 17:50:43.705221829 +0100
> @@ -15,4 +15,4 @@ foo (short *p, short *q, short *r)
>     p[1] = e & f;
>   }
>   
> -/* { dg-final { scan-tree-dump-times "Merging successful" 1 "store-merging" } } */
> +/* { dg-final { scan-tree-dump-times "Merging successful" 1 "store-merging" { target { ! arm*-*-* } } } } */
> --- gcc/testsuite/gcc.dg/pr82929-2.c.jj	2017-11-28 17:47:41.858409094 +0100
> +++ gcc/testsuite/gcc.dg/pr82929-2.c	2017-11-28 17:48:55.264526160 +0100
> @@ -0,0 +1,21 @@
> +/* PR tree-optimization/82929 */
> +/* { dg-do compile { target store_merge } } */
> +/* { dg-options "-O2 -fdump-tree-store-merging" } */
> +
> +void
> +foo (short *p, short *q, short *r)
> +{
> +  p = __builtin_assume_aligned (p, __alignof__ (int));
> +  q = __builtin_assume_aligned (q, __alignof__ (int));
> +  r = __builtin_assume_aligned (r, __alignof__ (int));
> +  short a = q[0];
> +  short b = q[1];
> +  short c = ~a;
> +  short d = r[0];
> +  short e = r[1];
> +  short f = ~b;
> +  p[0] = c & d;
> +  p[1] = e & f;
> +}
> +
> +/* { dg-final { scan-tree-dump-times "Merging successful" 1 "store-merging" } } */

Sudi has kindly tried it out and the new test passes on arm, so this 
patch is ok from an arm perspective.
Thanks for fixing this,
Kyrill

> 	Jakub

      reply	other threads:[~2017-11-29 15:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-29  8:30 Jakub Jelinek
2017-11-29 16:15 ` Kyrill Tkachov [this message]

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=5A1ECE2D.9060608@foss.arm.com \
    --to=kyrylo.tkachov@foss.arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=mikestump@comcast.net \
    --cc=ro@CeBiTec.Uni-Bielefeld.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).