Add AMD SSE5 support; Add iterator over function arguments; Add stdarg_p, prototype_p...
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / vect-args.c
blob94b602d913a57a2417b974517e96ac28b803dc5e
1 /* { dg-do compile } */
2 /* { dg-options "-w" } */
4 /* SSE1 and SSE2 modes. */
5 typedef unsigned char V16QImode __attribute__((vector_size(16)));
6 typedef unsigned short V8HImode __attribute__((vector_size(16)));
7 typedef unsigned int V4SImode __attribute__((vector_size(16)));
8 typedef unsigned long long V2DImode __attribute__((vector_size(16)));
9 typedef float V4SFmode __attribute__((vector_size(16)));
10 typedef double V2DFmode __attribute__((vector_size(16)));
12 /* MMX and 3DNOW modes. */
13 typedef unsigned char V8QImode __attribute__((vector_size(8)));
14 typedef unsigned short V4HImode __attribute__((vector_size(8)));
15 typedef unsigned int V2SImode __attribute__((vector_size(8)));
16 typedef float V2SFmode __attribute__((vector_size(8)));
18 /* Test argument loading and unloading of each. */
19 #define TEST(TYPE) \
20 extern TYPE data_##TYPE; \
21 void r_##TYPE (TYPE x) { data_##TYPE = x; } \
22 void s_##TYPE (void) { r_##TYPE (data_##TYPE); }
24 TEST(V16QImode)
25 TEST(V8HImode)
26 TEST(V4SImode)
27 TEST(V2DImode)
28 TEST(V4SFmode)
29 TEST(V2DFmode)
30 TEST(V8QImode)
31 TEST(V4HImode)
32 TEST(V2SImode)
33 TEST(V2SFmode)