2018-01-16 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-reduc-10.c
blob2d0dac8d3d56b4820b3557073d91a7e1c7a4e1b7
1 #include "tree-vect.h"
3 extern void abort (void);
4 double ad[1024];
5 float af[1024];
6 short as[1024];
7 int ai[1024];
8 long long all[1024];
9 unsigned short aus[1024];
10 unsigned int au[1024];
11 unsigned long long aull[1024];
13 #define F(var) \
14 __attribute__((noinline, noclone)) __typeof (var[0]) \
15 f##var (void) \
16 { \
17 int i; \
18 __typeof (var[0]) r = 0; \
19 for (i = 0; i < 1024; i++) \
20 r = r > var[i] ? r : var[i]; \
21 return r; \
24 #define TESTS \
25 F (ad) F (af) F (as) F (ai) F (all) F (aus) F (au) F (aull)
27 TESTS
29 int
30 main ()
32 int i;
34 check_vect ();
36 for (i = 0; i < 1024; i++)
38 #undef F
39 #define F(var) var[i] = i;
40 TESTS
42 for (i = 1023; i < 32 * 1024; i += 1024 + 271)
44 #undef F
45 #define F(var) var[i & 1023] = i; if (f##var () != i) abort ();
46 TESTS
48 return 0;