OSDN Git Service

2005-09-27 Uros Bizjak <uros@kss-loka.si>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / vect-args.c
1 /* { dg-do compile } */
2 /* { dg-options "-w" } */
3
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)));
11
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)));
17
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); }
23
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)