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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.target/] [powerpc/] [vsx-vectorize-6.c] - Blame information for rev 859

Go to most recent revision | 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 (double *pd, double *pa, double *pb, double *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
      if (pd[i] != 5.0)
23
        abort ();
24
    }
25
 
26
  return;
27
}
28
 
29
 
30
__attribute__ ((noinline)) int
31
main1 (int n, double * __restrict__ pd, double * __restrict__ pa, double * __restrict__ pb, double * __restrict__ pc)
32
{
33
  int i;
34
 
35
  for (i = 0; i < n; i++)
36
    {
37
      pa[i] = pb[i] * pc[i];
38
      pd[i] = 5.0;
39
    }
40
 
41
  bar (pd,pa,pb,pc);
42
 
43
  return 0;
44
}
45
 
46
int main (void)
47
{
48
  int i;
49
  double a[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
50
  double d[N+1] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
51
  double b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
52
  double c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
53
 
54
  main1 (N,&d[1],a,b,c);
55
  main1 (N-2,&d[1],a,b,c);
56
 
57
  return 0;
58
}
59
 
60
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
61
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" {xfail {! vect_hw_misalign } } } } */
62
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 0 "vect" } } */
63
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" {xfail {! vect_hw_misalign } } } } */
64
/* { 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.