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
prev parent 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).