Commit e5833b56 by Wilco Dijkstra Committed by Wilco Dijkstra

Fix store merging tests on Arm

Fix the failing store merging test on Arm.  Aligning variables fixes a
few cases, otherwise disable the test on Arm.  All store merging tests
now pass.  Committed as obvious.

    testsuite/
	* gcc.dg/store_merging_27.c: Fix test for Arm.
	* gcc.dg/store_merging_28.c: Likewise.
	* gcc.dg/store_merging_29.c: Likewise.
	* gcc.dg/tree-ssa/dump-6.c: Likewise.

From-SVN: r273011
parent a35d6e9f
2019-07-03 Wilco Dijkstra <wdijkstr@arm.com>
* gcc.dg/store_merging_27.c: Fix test for Arm.
* gcc.dg/store_merging_28.c: Likewise.
* gcc.dg/store_merging_29.c: Likewise.
* gcc.dg/tree-ssa/dump-6.c: Likewise.
2019-07-03 Richard Biener <rguenther@suse.de> 2019-07-03 Richard Biener <rguenther@suse.de>
PR middle-end/91069 PR middle-end/91069
......
...@@ -18,7 +18,7 @@ bar (struct S *x) ...@@ -18,7 +18,7 @@ bar (struct S *x)
int int
main () main ()
{ {
struct S s = {}; __attribute__((aligned(8))) struct S s = {};
s.buf[1] = 1; s.buf[1] = 1;
s.buf[3] = 2; s.buf[3] = 2;
bar (&s); bar (&s);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/* { dg-require-effective-target store_merge } */ /* { dg-require-effective-target store_merge } */
/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-store-merging-details" } */ /* { dg-options "-O2 -fno-ipa-icf -fdump-tree-store-merging-details" } */
/* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 16 stores" 8 "store-merging" { target { i?86-*-* x86_64-*-* } } } } */ /* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 16 stores" 8 "store-merging" { target { i?86-*-* x86_64-*-* } } } } */
/* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 6 stores" 1 "store-merging" } } */ /* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 6 stores" 1 "store-merging" { target { ! arm*-*-* } } } } */
typedef struct S { char data[16]; } S; typedef struct S { char data[16]; } S;
void optimize_me (S); void optimize_me (S);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/* { dg-require-effective-target store_merge } */ /* { dg-require-effective-target store_merge } */
/* { dg-options "-O2 -fdump-tree-store-merging-details" } */ /* { dg-options "-O2 -fdump-tree-store-merging-details" } */
/* { dg-final { scan-tree-dump "New sequence of 3 stores to replace old one of 6 stores" "store-merging" { target { le && { ! arm*-*-* } } } } } */ /* { dg-final { scan-tree-dump "New sequence of 3 stores to replace old one of 6 stores" "store-merging" { target { le && { ! arm*-*-* } } } } } */
/* { dg-final { scan-tree-dump "New sequence of \[34] stores to replace old one of 6 stores" "store-merging" { target { be || { arm*-*-* } } } } } */ /* { dg-final { scan-tree-dump "New sequence of \[34] stores to replace old one of 6 stores" "store-merging" { target { be && { ! arm*-*-* } } } } } */
struct T { char a[1024]; }; struct T { char a[1024]; };
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
{ dg-require-effective-target store_merge } */ { dg-require-effective-target store_merge } */
extern char a2[2]; extern __attribute__((aligned(2))) char a2[2];
void f2 (void) void f2 (void)
{ {
...@@ -13,7 +13,7 @@ void f2 (void) ...@@ -13,7 +13,7 @@ void f2 (void)
a2[1] = 0; a2[1] = 0;
} }
extern char a4[4]; extern __attribute__((aligned(4))) char a4[4];
void f4 (void) void f4 (void)
{ {
...@@ -23,7 +23,7 @@ void f4 (void) ...@@ -23,7 +23,7 @@ void f4 (void)
a4[3] = 0; a4[3] = 0;
} }
extern char a8[8]; extern __attribute__((aligned(8))) char a8[8];
void f8 (void) void f8 (void)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment