annotate gcc/testsuite/gcc.dg/vect/pr66253.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-require-effective-target vect_double } */
kono
parents:
diff changeset
2 /* { dg-require-effective-target vect_hw_misalign } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #include "tree-vect.h"
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 void __attribute__((noinline,noclone))
kono
parents:
diff changeset
7 test1(_Complex double * __restrict__ a, _Complex double * __restrict__ b,
kono
parents:
diff changeset
8 double * __restrict__ c, int stride, int n)
kono
parents:
diff changeset
9 {
kono
parents:
diff changeset
10 int i;
kono
parents:
diff changeset
11 for (i = 0; i < n; i++)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 a[i*stride] = 0.5 * b[i*stride] * c[i*stride];
kono
parents:
diff changeset
14 }
kono
parents:
diff changeset
15 }
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 double ca[256];
kono
parents:
diff changeset
18 _Complex double ia[256];
kono
parents:
diff changeset
19 _Complex double da[256];
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 extern void abort (void);
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 int main ()
kono
parents:
diff changeset
24 {
kono
parents:
diff changeset
25 int i;
kono
parents:
diff changeset
26 int stride;
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 check_vect ();
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 for (stride = 1; stride < 15; stride++)
kono
parents:
diff changeset
31 {
kono
parents:
diff changeset
32 for (i = 0; i < 256; i++)
kono
parents:
diff changeset
33 {
kono
parents:
diff changeset
34 __real__ ia[i] = (i + stride) % 19;
kono
parents:
diff changeset
35 __imag__ ia[i] = (i + stride) % 23;
kono
parents:
diff changeset
36 ca[i] = (i + stride) % 29;
kono
parents:
diff changeset
37 __asm__ volatile ("");
kono
parents:
diff changeset
38 }
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 test1(da, ia, ca, stride, 256/stride);
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 for (i = 0; i < 256/stride; i++)
kono
parents:
diff changeset
43 {
kono
parents:
diff changeset
44 if (da[i*stride] != 0.5 * ia[i*stride] * ca[i*stride])
kono
parents:
diff changeset
45 abort ();
kono
parents:
diff changeset
46 }
kono
parents:
diff changeset
47 }
kono
parents:
diff changeset
48 return 0;
kono
parents:
diff changeset
49 }
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */