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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [vect/] [vect-45.c] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* { dg-require-effective-target vect_float } */
/* { dg-require-effective-target vect_float } */
 
 
#include <stdarg.h>
#include <stdarg.h>
#include "tree-vect.h"
#include "tree-vect.h"
 
 
#define N 256
#define N 256
 
 
void bar (const float *pa, const float *pb, const float *pc)
void bar (const float *pa, const float *pb, const float *pc)
{
{
  int i;
  int i;
 
 
  /* check results:  */
  /* check results:  */
  for (i = 0; i < N; i++)
  for (i = 0; i < N; i++)
    {
    {
      if (pa[i] != (pb[i] * pc[i]))
      if (pa[i] != (pb[i] * pc[i]))
        abort ();
        abort ();
    }
    }
 
 
  return;
  return;
}
}
 
 
/* Unaligned pointer accesses, with unknown alignment.
/* Unaligned pointer accesses, with unknown alignment.
   The loop bound is known and divisible by the vectorization factor.
   The loop bound is known and divisible by the vectorization factor.
   Can't prove that the pointers don't alias.
   Can't prove that the pointers don't alias.
   vect-51.c is similar to this one with one difference:
   vect-51.c is similar to this one with one difference:
        the loop bound is unknown.
        the loop bound is unknown.
   vect-44.c is similar to this one with one difference:
   vect-44.c is similar to this one with one difference:
        Aliasing is not a problem.  */
        Aliasing is not a problem.  */
 
 
int
int
main1 (float *pa, float *pb, float *pc)
main1 (float *pa, float *pb, float *pc)
{
{
  int i;
  int i;
 
 
  for (i = 0; i < N; i++)
  for (i = 0; i < N; i++)
    {
    {
      pa[i] = pb[i] * pc[i];
      pa[i] = pb[i] * pc[i];
    }
    }
 
 
  bar (pa,pb,pc);
  bar (pa,pb,pc);
 
 
  return 0;
  return 0;
}
}
 
 
int main (void)
int main (void)
{
{
  int i;
  int i;
  float a[N];
  float a[N];
  float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
  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};
  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 ();
  check_vect ();
 
 
  main1 (a,b,c);
  main1 (a,b,c);
  return 0;
  return 0;
}
}
 
 
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
/* { 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.