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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.target/] [i386/] [opt-2.c] - Blame information for rev 848

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 691 jeremybenn
/* Test the attribute((optimize)) really works.  Do this test by checking
2
   whether we vectorize a simple loop.  */
3
/* { dg-do compile } */
4
/* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8 --param min-insn-to-prefetch-ratio=0" } */
5
/* { dg-final { scan-assembler "prefetcht0" } } */
6
/* { dg-final { scan-assembler "addps" } } */
7
/* { dg-final { scan-assembler "subss" } } */
8
 
9
#define SIZE 10240
10
float a[SIZE] __attribute__((__aligned__(32)));
11
float b[SIZE] __attribute__((__aligned__(32)));
12
float c[SIZE] __attribute__((__aligned__(32)));
13
 
14
/* This should vectorize.  */
15
#pragma GCC push_options
16
#pragma GCC optimize (3, "unroll-all-loops", "-fprefetch-loop-arrays")
17
 
18
void
19
opt3 (void)
20
{
21
  int i;
22
 
23
  for (i = 0; i < SIZE; i++)
24
    a[i] = b[i] + c[i];
25
}
26
 
27
#pragma GCC pop_options
28
 
29
/* This should not vectorize.  */
30
void
31
not_opt3 (void)
32
{
33
  int i;
34
 
35
  for (i = 0; i < SIZE; i++)
36
    a[i] = b[i] - c[i];
37
}
38
 

powered by: WebSVN 2.1.0

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