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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [vect/] [fast-math-bb-slp-call-2.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* { dg-require-effective-target vect_double } */
2
 
3
#include "tree-vect.h"
4
 
5
extern long int lrint (double);
6
extern void abort (void);
7
long int a[64];
8
double b[64];
9
 
10
__attribute__((noinline, noclone)) void
11
f1 (void)
12
{
13
  a[0] = lrint (b[0]) + 1;
14
  a[1] = lrint (b[1]) + 2;
15
  a[2] = lrint (b[2]) + 3;
16
  a[3] = lrint (b[3]) + 4;
17
  a[4] = lrint (b[4]) + 5;
18
  a[5] = lrint (b[5]) + 6;
19
  a[6] = lrint (b[6]) + 7;
20
  a[7] = lrint (b[7]) + 8;
21
}
22
 
23
__attribute__((noinline, noclone)) void
24
f2 (void)
25
{
26
  a[0] = lrint (b[0]);
27
  a[1] = lrint (b[1]);
28
  a[2] = lrint (b[2]);
29
  a[3] = lrint (b[3]);
30
  a[4] = lrint (b[4]);
31
  a[5] = lrint (b[5]);
32
  a[6] = lrint (b[6]);
33
  a[7] = lrint (b[7]);
34
}
35
 
36
__attribute__((noinline, noclone)) int
37
main1 ()
38
{
39
  int i;
40
 
41
  for (i = 0; i < 8; i++)
42
    {
43
      asm ("");
44
      b[i] = ((i & 1) ? -4 * i : 4 * i) + 0.25;
45
    }
46
  f1 ();
47
  for (i = 0; i < 8; i++)
48
    if (a[i] != ((i & 1) ? -4 * i : 4 * i) + 1 + i)
49
      abort ();
50
    else
51
      a[i] = 131.25;
52
  f2 ();
53
  for (i = 0; i < 8; i++)
54
    if (a[i] != ((i & 1) ? -4 * i : 4 * i))
55
      abort ();
56
  return 0;
57
}
58
 
59
int
60
main ()
61
{
62
  check_vect ();
63
  return main1 ();
64
}
65
 
66
/* { dg-final { scan-tree-dump-times "basic block vectorized using SLP" 2 "slp" { target vect_call_lrint } } } */
67
/* { dg-final { cleanup-tree-dump "slp" } } */

powered by: WebSVN 2.1.0

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