OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.target/] [powerpc/] [vsx-vectorize-5.c] - Blame information for rev 322

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 322 jeremybenn
/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
3
/* { dg-require-effective-target powerpc_vsx_ok } */
4
/* { dg-options "-mcpu=power7 -O2 -ftree-vectorize -fno-vect-cost-model -fdump-tree-vect-details" } */
5
 
6
/* Taken from vect/vect-95.c.  */
7
#include <stdlib.h>
8
#include <stdarg.h>
9
 
10
#define N 256
11
 
12
__attribute__ ((noinline))
13
void bar (char *pa, char *pb, char *pc)
14
{
15
  int i;
16
 
17
  /* check results:  */
18
  for (i = 0; i < N; i++)
19
    {
20
      if (pa[i] != (pb[i] + pc[i]))
21
        abort ();
22
    }
23
 
24
  return;
25
}
26
 
27
 
28
__attribute__ ((noinline)) int
29
main1 (int n, char * __restrict__ pa, char * __restrict__ pb, char * __restrict__ pc)
30
{
31
  int i;
32
 
33
  for (i = 0; i < n; i++)
34
    {
35
      pa[i] = pb[i] + pc[i];
36
    }
37
 
38
  bar (pa,pb,pc);
39
 
40
  return 0;
41
}
42
 
43
int main (void)
44
{
45
  int i;
46
  char a[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
47
  char b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
48
  char c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
49
 
50
  main1 (N,a,b,c);
51
  main1 (N-2,a,b,c);
52
 
53
  return 0;
54
}
55
 
56
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
57
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
58
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 0 "vect" } } */
59
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" } } */
60
/* { dg-final { cleanup-tree-dump "vect" } } */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.