aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr36891.c
blob: ab58e43b9cd5387e58e61dde8c911c093946cf3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* { dg-do compile } */
/* { dg-options "-ffast-math" } */
/* { dg-options "-ffast-math -msse" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
/* { dg-require-effective-target sse { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
/* { dg-options "-ffast-math -mabi=altivec" { target { { powerpc*-*-linux* } && ia32 } } } */

#define __vector __attribute__((vector_size(16) ))
__vector float f(void);
void g(__vector float);
void RRB( __vector float vdist, __vector float vx)
{
  int detail;
  for(detail = 0; detail < 5;++detail)
  {
   __vector float frand = f();
   __vector float pullperc =  frand/ vdist;
   __vector float pullx =  vx * pullperc;
   g(pullx);
  }
}

/* Ignore a warning that is irrelevant to the purpose of this test.  */
/* { dg-prune-output ".*GCC vector returned by reference.*" } */