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

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" } } */

	Jakub

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

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

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=20171129081851.GV2353@tucnak \
    --to=jakub@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=kyrylo.tkachov@foss.arm.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).