Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/sms-7.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* { dg-do run } */ | |
2 /* { dg-options "-O3 -fmodulo-sched -fstrict-aliasing -fdump-rtl-sms -fmodulo-sched-allow-regmoves --param sms-min-sc=1" } */ | |
3 | |
4 extern void abort (void); | |
5 | |
6 __attribute__ ((noinline)) | |
7 void foo (int * __restrict__ a, int * __restrict__ b, short * c) | |
8 { | |
9 int i; | |
10 for(i = 0; i < 100; i+=4) | |
11 { | |
12 a[i] = b[i] * c[i]; | |
13 a[i+1] = b[i+1] * c[i+1]; | |
14 a[i+2] = b[i+2] * c[i+2]; | |
15 a[i+3] = b[i+3] * c[i+3]; | |
16 } | |
17 } | |
18 | |
19 int a[100], b[100]; | |
20 short c[100]; | |
21 | |
22 int main() | |
23 { | |
24 #if (__SIZEOF_INT__ <= 2) | |
25 int i; | |
26 long res; | |
27 #else | |
28 int i, res; | |
29 #endif | |
30 for(i = 0; i < 100; i++) | |
31 { | |
32 b[i] = c[i] = i; | |
33 } | |
34 foo(a, b, c); | |
35 | |
36 res = 0; | |
37 for(i = 0; i < 100; i++) | |
38 { | |
39 res += a[i]; | |
40 } | |
41 if(res != 328350) | |
42 abort(); | |
43 | |
44 return 0; | |
45 } | |
46 | |
47 /* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */ | |
48 |