Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Unified Diff: gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c ('k') | gcc/gcc/testsuite/gcc.dg/vect/pr18400.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
diff --git a/gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c b/gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
index b64427f6d0b229fa7f97f8dde0a7f106828f0b82..16a01d1a32066b7d9ff9a2c7c1da5ac7f860c00c 100644
--- a/gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
+++ b/gcc/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
@@ -22,40 +22,53 @@ void bar (float *pa, float *pb, float *pc)
__attribute__ ((noinline)) int
-main1 (float *pa)
+main1 (float *pa, float *pb, float *pc)
{
int i;
- float pb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
- float pc[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ float b[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+ float c[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
- /* Not vectorizable: pa may alias pb and/or pc, since their addresses escape. */
for (i = 0; i < N; i++)
{
- pa[i] = pb[i] * pc[i];
+ b[i] = pb[i];
+ c[i] = pc[i];
}
- bar (pa,pb,pc);
+ /* Vectorizable: pa may not alias pb and/or pc, even though their
+ addresses escape. &pa would need to escape to point to escaped memory. */
+ for (i = 0; i < N; i++)
+ {
+ pa[i] = b[i] * c[i];
+ }
+
+ bar (pa,b,c);
return 0;
}
__attribute__ ((noinline)) int
-main2 (float * pa)
+main2 (float *pa, float *pb, float *pc)
{
int i;
- float pb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
- float pc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ float b[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+ float c[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+
+ for (i = 0; i < N; i++)
+ {
+ b[i] = pb[i];
+ c[i] = pc[i];
+ }
/* Vectorizable: pb and pc addresses do not escape. */
for (i = 0; i < N; i++)
{
- pa[i] = pb[i] * pc[i];
+ pa[i] = b[i] * c[i];
}
/* check results: */
for (i = 0; i < N; i++)
{
- if (pa[i] != (pb[i] * pc[i]))
+ if (pa[i] != (b[i] * c[i]))
abort ();
}
@@ -65,15 +78,17 @@ main2 (float * pa)
int main (void)
{
int i;
- float a[N] __attribute__ ((__aligned__(16)));
+ float a[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+ float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+ float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
check_vect ();
- main1 (a);
- main2 (a);
+ main1 (a,b,c);
+ main2 (a,b,c);
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 6 "vect" { target vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
« no previous file with comments | « gcc/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c ('k') | gcc/gcc/testsuite/gcc.dg/vect/pr18400.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698