1 /* { dg-do compile } */
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
)
12 fu32 (vec_or (u32a
, u32a
),
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
),
27 vec_subs(u32d
, u32d
));
28 fu32 (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),
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
));
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
)
55 fu16 (vec_or (u16a
, u16a
),
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
),
70 vec_subs(u16d
, u16d
));
71 fu16 (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),
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
));
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
)
98 fu8 (vec_or (u8a
, u8a
),
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
),
114 fu8 (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),
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
));
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
)
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
),
156 vec_subs(s32d
, s32d
));
157 fs32 (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),
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
));
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
)
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
),
199 vec_subs(s16d
, s16d
));
200 fs16 (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),
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
));
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
)
227 fs8 (vec_or (s8a
, s8a
),
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
),
243 fs8 (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),
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
));
261 void fu32(vector
unsigned int a
, vector
unsigned int b
,
262 vector
unsigned int c
, vector
unsigned int d
)
266 void fu16(vector
unsigned short a
, vector
unsigned short b
,
267 vector
unsigned short c
, vector
unsigned short d
)
271 void fu8(vector
unsigned char a
, vector
unsigned char b
,
272 vector
unsigned char c
, vector
unsigned char d
)
276 void fs32(vector
signed int a
, vector
signed int b
,
277 vector
signed int c
, vector
signed int d
)
281 void fs16(vector
signed short a
, vector
signed short b
,
282 vector
signed short c
, vector
signed short d
)
286 void fs8(vector
signed char a
, vector
signed char b
,
287 vector
signed char c
, vector
signed char d
)