Bug 45429 - [4.6 Regression] gcc.dg/vect/no-section-anchors-vect-64.c
Summary: [4.6 Regression] gcc.dg/vect/no-section-anchors-vect-64.c
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: 4.6.0
Assignee: Jakub Jelinek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-27 16:02 UTC by H.J. Lu
Modified: 2010-11-17 12:15 UTC (History)
2 users (show)

See Also:
Host:
Target: ia64-linux
Build:
Known to work:
Known to fail:
Last reconfirmed: 2010-11-03 16:23:48


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2010-08-27 16:02:51 UTC
On Linux/ia64, revision 163565 gave

FAIL: gcc.dg/vect/no-section-anchors-vect-64.c scan-tree-dump-times vect "Alignment of access forced using peeling" 2

Revision 163561 is OK.
Comment 1 Richard Biener 2010-11-03 16:23:48 UTC
What does it instead say in the dump?
Comment 2 Jakub Jelinek 2010-11-17 10:20:16 UTC
In ia64 cross I see that only one
Alignment of access forced using peeling
message is printed (for the first loop), instead of two (for the first and third loop).

If 163561 was ok, then then difference is most probably the change to the testcase itself:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c?r1=163563&r2=163562&pathrev=163563

The culprit is the change of id array.

I guess we could do something like:

--- gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c.jj	2010-11-17 11:18:22.000000000 +0100
+++ gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c	2010-11-17 11:17:39.000000000 +0100
@@ -8,7 +8,7 @@
 int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
 int ia[N][4][N+1];
 int ic[N][N][3][N+1];
-int id[N][N][N+1];
+int id[N][N][N+4];
 
 __attribute__ ((noinline))

(at least this seems to work for both ia64 and x86_64).
Comment 3 Jakub Jelinek 2010-11-17 10:25:40 UTC
And the reason why it only shows up on ia64 is because it uses vectorization factor 2 instead of 4 that is used on x86_64/i386+sse2.  With:
int id[16][16][17]
id[i][1][0+1] is actually aligned to 2 * sizeof (int), so no peeling is needed to align it.
Comment 4 Jakub Jelinek 2010-11-17 12:05:28 UTC
Author: jakub
Date: Wed Nov 17 12:05:24 2010
New Revision: 166865

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166865
Log:
	PR testsuite/45429
	* gcc.dg/vect/no-section-anchors-vect-64.c: New test.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
Comment 5 Jakub Jelinek 2010-11-17 12:15:48 UTC
Fixed.