OSDN Git Service

* gcc.dg/vmx/varargs-1.c: Handle when printf outputs \r\n.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vmx / 5-11.c
1 /* { dg-do compile } */
2 #include <altivec.h>
3 extern void fu32(vector unsigned int, vector unsigned int,
4                  vector unsigned int, vector unsigned int);
5 void fxu32(vector unsigned int u32a, vector unsigned int u32b,
6            vector unsigned int u32c, vector unsigned int u32d)
7 {
8  fu32 (u32a,
9        u32b,
10        u32c,
11        vec_avg(u32d, u32d));
12  fu32 (vec_or (u32a, u32a),
13        vec_and (u32b, u32b),
14        vec_max (u32c, u32c),
15        vec_min (u32d, u32d));
16  fu32 (vec_sld (u32a, u32a, 0),
17        vec_sld (u32b, u32b, 0),
18        vec_sld (u32c, u32c, 0),
19        vec_sld (u32d, u32d, 0));
20  fu32 (((vector unsigned int){0,0,0,0}),
21        ((vector unsigned int){0,0,0,0}),
22        ((vector unsigned int){0,0,0,0}),
23        ((vector unsigned int){0,0,0,0}));
24  fu32 (vec_xor(u32a, u32a),
25        vec_andc(u32b, u32b),
26        vec_sub(u32c, u32c),
27        vec_subs(u32d, u32d));
28  fu32 (vec_splat_u32(0),
29        vec_splat_u32(0),
30        vec_splat_u32(0),
31        vec_splat_u32(0));
32  fu32 (((vector unsigned int){0xffffffff,0xffffffff,0xffffffff,0xffffffff}),
33        ((vector unsigned int){0xffffffff,0xffffffff,0xffffffff,0xffffffff}),
34        ((vector unsigned int){0xffffffff,0xffffffff,0xffffffff,0xffffffff}),
35        ((vector unsigned int){0xffffffff,0xffffffff,0xffffffff,0xffffffff}));
36  fu32 (vec_splat_u32(-1),
37        vec_splat_u32(-1),
38        vec_splat_u32(-1),
39        vec_splat_u32(-1));
40  fu32 ((vector unsigned int)vec_cmpeq(u32a, u32a),
41        (vector unsigned int)vec_cmpeq(u32b, u32b),
42        (vector unsigned int)vec_cmpeq(u32c, u32c),
43        (vector unsigned int)vec_cmpeq(u32d, u32d));
44 }
45
46 extern void fu16(vector unsigned short, vector unsigned short,
47                  vector unsigned short, vector unsigned short);
48 void fxu16(vector unsigned short u16a, vector unsigned short u16b,
49            vector unsigned short u16c, vector unsigned short u16d)
50 {
51  fu16 (u16a,
52        u16b,
53        u16c,
54        vec_avg(u16d, u16d));
55  fu16 (vec_or (u16a, u16a),
56        vec_and (u16b, u16b),
57        vec_max (u16c, u16c),
58        vec_min (u16d, u16d));
59  fu16 (vec_sld (u16a, u16a, 0),
60        vec_sld (u16b, u16b, 0),
61        vec_sld (u16c, u16c, 0),
62        vec_sld (u16d, u16d, 0));
63  fu16 (((vector unsigned short){0,0,0,0,0,0,0,0}),
64        ((vector unsigned short){0,0,0,0,0,0,0,0}),
65        ((vector unsigned short){0,0,0,0,0,0,0,0}),
66        ((vector unsigned short){0,0,0,0,0,0,0,0}));
67  fu16 (vec_xor(u16a, u16a),
68        vec_andc(u16b, u16b),
69        vec_sub(u16c, u16c),
70        vec_subs(u16d, u16d));
71  fu16 (vec_splat_u16(0),
72        vec_splat_u16(0),
73        vec_splat_u16(0),
74        vec_splat_u16(0));
75  fu16 (((vector unsigned short){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff}),
76        ((vector unsigned short){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff}),
77        ((vector unsigned short){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff}),
78        ((vector unsigned short){0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff}));
79  fu16 (vec_splat_u16(-1),
80        vec_splat_u16(-1),
81        vec_splat_u16(-1),
82        vec_splat_u16(-1));
83  fu16 ((vector unsigned short)vec_cmpeq(u16a, u16a),
84        (vector unsigned short)vec_cmpeq(u16b, u16b),
85        (vector unsigned short)vec_cmpeq(u16c, u16c),
86        (vector unsigned short)vec_cmpeq(u16d, u16d));
87 }
88
89 extern void fu8(vector unsigned char, vector unsigned char,
90                 vector unsigned char, vector unsigned char);
91 void fxu8(vector unsigned char u8a, vector unsigned char u8b,
92            vector unsigned char u8c, vector unsigned char u8d)
93 {
94  fu8 (u8a,
95        u8b,
96        u8c,
97        vec_avg(u8d, u8d));
98  fu8 (vec_or (u8a, u8a),
99        vec_and (u8b, u8b),
100        vec_max (u8c, u8c),
101        vec_min (u8d, u8d));
102  fu8 (vec_sld (u8a, u8a, 0),
103        vec_sld (u8b, u8b, 0),
104        vec_sld (u8c, u8c, 0),
105        vec_sld (u8d, u8d, 0));
106  fu8 (((vector unsigned char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
107        ((vector unsigned char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
108        ((vector unsigned char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
109        ((vector unsigned char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
110  fu8 (vec_xor(u8a, u8a),
111        vec_andc(u8b, u8b),
112        vec_sub(u8c, u8c),
113        vec_subs(u8d, u8d));
114  fu8 (vec_splat_u8(0),
115        vec_splat_u8(0),
116        vec_splat_u8(0),
117        vec_splat_u8(0));
118  fu8 (((vector unsigned char){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}),
119        ((vector unsigned char){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}),
120        ((vector unsigned char){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}),
121        ((vector unsigned char){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}));
122  fu8 (vec_splat_u8(-1),
123        vec_splat_u8(-1),
124        vec_splat_u8(-1),
125        vec_splat_u8(-1));
126  fu8 ((vector unsigned char)vec_cmpeq(u8a, u8a),
127        (vector unsigned char)vec_cmpeq(u8b, u8b),
128        (vector unsigned char)vec_cmpeq(u8c, u8c),
129        (vector unsigned char)vec_cmpeq(u8d, u8d));
130 }
131
132 extern void fs32(vector signed int, vector signed int,
133                  vector signed int, vector signed int);
134 void fxs32(vector signed int s32a, vector signed int s32b,
135            vector signed int s32c, vector signed int s32d)
136 {
137  fs32 (s32a,
138        s32b,
139        s32c,
140        vec_avg(s32d, s32d));
141  fs32 (vec_or (s32a, s32a),
142        vec_and (s32b, s32b),
143        vec_max (s32c, s32c),
144        vec_min (s32d, s32d));
145  fs32 (vec_sld (s32a, s32a, 0),
146        vec_sld (s32b, s32b, 0),
147        vec_sld (s32c, s32c, 0),
148        vec_sld (s32d, s32d, 0));
149  fs32 (((vector signed int){0,0,0,0}),
150        ((vector signed int){0,0,0,0}),
151        ((vector signed int){0,0,0,0}),
152        ((vector signed int){0,0,0,0}));
153  fs32 (vec_xor(s32a, s32a),
154        vec_andc(s32b, s32b),
155        vec_sub(s32c, s32c),
156        vec_subs(s32d, s32d));
157  fs32 (vec_splat_s32(0),
158        vec_splat_s32(0),
159        vec_splat_s32(0),
160        vec_splat_s32(0));
161  fs32 (((vector signed int){-1,-1,-1,-1}),
162        ((vector signed int){-1,-1,-1,-1}),
163        ((vector signed int){-1,-1,-1,-1}),
164        ((vector signed int){-1,-1,-1,-1}));
165  fs32 (vec_splat_s32(-1),
166        vec_splat_s32(-1),
167        vec_splat_s32(-1),
168        vec_splat_s32(-1));
169  fs32 ((vector signed int)vec_cmpeq(s32a, s32a),
170        (vector signed int)vec_cmpeq(s32b, s32b),
171        (vector signed int)vec_cmpeq(s32c, s32c),
172        (vector signed int)vec_cmpeq(s32d, s32d));
173 }
174
175 extern void fs16(vector signed short, vector signed short,
176                  vector signed short, vector signed short);
177 void fxs16(vector signed short s16a, vector signed short s16b,
178            vector signed short s16c, vector signed short s16d)
179 {
180  fs16 (s16a,
181        s16b,
182        s16c,
183        vec_avg(s16d, s16d));
184  fs16 (vec_or (s16a, s16a),
185        vec_and (s16b, s16b),
186        vec_max (s16c, s16c),
187        vec_min (s16d, s16d));
188  fs16 (vec_sld (s16a, s16a, 0),
189        vec_sld (s16b, s16b, 0),
190        vec_sld (s16c, s16c, 0),
191        vec_sld (s16d, s16d, 0));
192  fs16 (((vector signed short){0,0,0,0,0,0,0,0}),
193        ((vector signed short){0,0,0,0,0,0,0,0}),
194        ((vector signed short){0,0,0,0,0,0,0,0}),
195        ((vector signed short){0,0,0,0,0,0,0,0}));
196  fs16 (vec_xor(s16a, s16a),
197        vec_andc(s16b, s16b),
198        vec_sub(s16c, s16c),
199        vec_subs(s16d, s16d));
200  fs16 (vec_splat_s16(0),
201        vec_splat_s16(0),
202        vec_splat_s16(0),
203        vec_splat_s16(0));
204  fs16 (((vector signed short){-1,-1,-1,-1,-1,-1,-1,-1}),
205        ((vector signed short){-1,-1,-1,-1,-1,-1,-1,-1}),
206        ((vector signed short){-1,-1,-1,-1,-1,-1,-1,-1}),
207        ((vector signed short){-1,-1,-1,-1,-1,-1,-1,-1}));
208  fs16 (vec_splat_s16(-1),
209        vec_splat_s16(-1),
210        vec_splat_s16(-1),
211        vec_splat_s16(-1));
212  fs16 ((vector signed short)vec_cmpeq(s16a, s16a),
213        (vector signed short)vec_cmpeq(s16b, s16b),
214        (vector signed short)vec_cmpeq(s16c, s16c),
215        (vector signed short)vec_cmpeq(s16d, s16d));
216 }
217
218 extern void fs8(vector signed char, vector signed char,
219                 vector signed char, vector signed char);
220 void fxs8(vector signed char s8a, vector signed char s8b,
221            vector signed char s8c, vector signed char s8d)
222 {
223  fs8 (s8a,
224        s8b,
225        s8c,
226        vec_avg(s8d, s8d));
227  fs8 (vec_or (s8a, s8a),
228        vec_and (s8b, s8b),
229        vec_max (s8c, s8c),
230        vec_min (s8d, s8d));
231  fs8 (vec_sld (s8a, s8a, 0),
232        vec_sld (s8b, s8b, 0),
233        vec_sld (s8c, s8c, 0),
234        vec_sld (s8d, s8d, 0));
235  fs8 (((vector signed char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
236        ((vector signed char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
237        ((vector signed char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),
238        ((vector signed char){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));
239  fs8 (vec_xor(s8a, s8a),
240        vec_andc(s8b, s8b),
241        vec_sub(s8c, s8c),
242        vec_subs(s8d, s8d));
243  fs8 (vec_splat_s8(0),
244        vec_splat_s8(0),
245        vec_splat_s8(0),
246        vec_splat_s8(0));
247  fs8 (((vector signed char){-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}),
248        ((vector signed char){-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}),
249        ((vector signed char){-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}),
250        ((vector signed char){-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}));
251  fs8 (vec_splat_s8(-1),
252        vec_splat_s8(-1),
253        vec_splat_s8(-1),
254        vec_splat_s8(-1));
255  fs8 ((vector signed char)vec_cmpeq(s8a, s8a),
256        (vector signed char)vec_cmpeq(s8b, s8b),
257        (vector signed char)vec_cmpeq(s8c, s8c),
258        (vector signed char)vec_cmpeq(s8d, s8d));
259 }
260
261 void fu32(vector unsigned int a, vector unsigned int b,
262           vector unsigned int c, vector unsigned int d)
263 {
264 }
265
266 void fu16(vector unsigned short a, vector unsigned short b,
267           vector unsigned short c, vector unsigned short d)
268 {
269 }
270
271 void fu8(vector unsigned char a, vector unsigned char b,
272          vector unsigned char c, vector unsigned char d)
273 {
274 }
275
276 void fs32(vector signed int a, vector signed int b,
277           vector signed int c, vector signed int d)
278 {
279 }
280
281 void fs16(vector signed short a, vector signed short b,
282           vector signed short c, vector signed short d)
283 {
284 }
285
286 void fs8(vector signed char a, vector signed char b,
287          vector signed char c, vector signed char d)
288 {
289 }