]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c
Get rid of dg-skip-if etc. default args
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / powerpc / vsx-vector-1.c
CommitLineData
29e6733c 1/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
4f4b0ab8 2/* { dg-skip-if "" { powerpc*-*-darwin* } } */
29e6733c 3/* { dg-require-effective-target powerpc_vsx_ok } */
a5fc83a1 4/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
828514e4 5/* { dg-options "-O2 -ftree-vectorize -mcpu=power7 -ffast-math" } */
29e6733c
MM
6/* { dg-final { scan-assembler "xvadddp" } } */
7/* { dg-final { scan-assembler "xvsubdp" } } */
8/* { dg-final { scan-assembler "xvmuldp" } } */
9/* { dg-final { scan-assembler "xvdivdp" } } */
10/* { dg-final { scan-assembler "xvmadd" } } */
11/* { dg-final { scan-assembler "xvmsub" } } */
12/* { dg-final { scan-assembler "xvsqrtdp" } } */
13/* { dg-final { scan-assembler "xvcpsgndp" } } */
14/* { dg-final { scan-assembler "xvrdpim" } } */
15/* { dg-final { scan-assembler "xvrdpip" } } */
16/* { dg-final { scan-assembler "xvrdpiz" } } */
17/* { dg-final { scan-assembler "xvrdpic" } } */
18/* { dg-final { scan-assembler "xvrdpi " } } */
19
20#ifndef SIZE
21#define SIZE 1024
22#endif
23
24double a[SIZE] __attribute__((__aligned__(32)));
25double b[SIZE] __attribute__((__aligned__(32)));
26double c[SIZE] __attribute__((__aligned__(32)));
27double d[SIZE] __attribute__((__aligned__(32)));
28double e[SIZE] __attribute__((__aligned__(32)));
29
30void
31vector_add (void)
32{
33 int i;
34
35 for (i = 0; i < SIZE; i++)
36 a[i] = b[i] + c[i];
37}
38
39void
40vector_subtract (void)
41{
42 int i;
43
44 for (i = 0; i < SIZE; i++)
45 a[i] = b[i] - c[i];
46}
47
48void
49vector_multiply (void)
50{
51 int i;
52
53 for (i = 0; i < SIZE; i++)
54 a[i] = b[i] * c[i];
55}
56
57void
58vector_multiply_add (void)
59{
60 int i;
61
62 for (i = 0; i < SIZE; i++)
63 a[i] = (b[i] * c[i]) + d[i];
64}
65
66void
67vector_multiply_subtract (void)
68{
69 int i;
70
71 for (i = 0; i < SIZE; i++)
72 a[i] = (b[i] * c[i]) - d[i];
73}
74
75void
76vector_divide (void)
77{
78 int i;
79
80 for (i = 0; i < SIZE; i++)
81 a[i] = b[i] / c[i];
82}
83
84extern double sqrt (double);
85extern double floor (double);
86extern double ceil (double);
87extern double trunc (double);
88extern double nearbyint (double);
89extern double rint (double);
90extern double copysign (double, double);
91
92void
93vector_sqrt (void)
94{
95 int i;
96
97 for (i = 0; i < SIZE; i++)
98 a[i] = sqrt (b[i]);
99}
100
101void
102vector_floor (void)
103{
104 int i;
105
106 for (i = 0; i < SIZE; i++)
107 a[i] = floor (b[i]);
108}
109
110void
111vector_ceil (void)
112{
113 int i;
114
115 for (i = 0; i < SIZE; i++)
116 a[i] = ceil (b[i]);
117}
118
119void
120vector_trunc (void)
121{
122 int i;
123
124 for (i = 0; i < SIZE; i++)
125 a[i] = trunc (b[i]);
126}
127
128void
129vector_nearbyint (void)
130{
131 int i;
132
133 for (i = 0; i < SIZE; i++)
134 a[i] = nearbyint (b[i]);
135}
136
137void
138vector_rint (void)
139{
140 int i;
141
142 for (i = 0; i < SIZE; i++)
143 a[i] = rint (b[i]);
144}
145
146void
147vector_copysign (void)
148{
149 int i;
150
151 for (i = 0; i < SIZE; i++)
152 a[i] = copysign (b[i], c[i]);
153}