1/* { dg-do compile } */ 2/* { dg-options "-w" } */ 3 4/* SSE1 and SSE2 modes. */ 5typedef unsigned char V16QImode __attribute__((vector_size(16))); 6typedef unsigned short V8HImode __attribute__((vector_size(16))); 7typedef unsigned int V4SImode __attribute__((vector_size(16))); 8typedef unsigned long long V2DImode __attribute__((vector_size(16))); 9typedef float V4SFmode __attribute__((vector_size(16))); 10typedef double V2DFmode __attribute__((vector_size(16))); 11 12/* MMX and 3DNOW modes. */ 13typedef unsigned char V8QImode __attribute__((vector_size(8))); 14typedef unsigned short V4HImode __attribute__((vector_size(8))); 15typedef unsigned int V2SImode __attribute__((vector_size(8))); 16typedef float V2SFmode __attribute__((vector_size(8))); 17 18/* Test argument loading and unloading of each. */ 19#define TEST(TYPE) \ 20extern TYPE data_##TYPE; \ 21void r_##TYPE (TYPE x) { data_##TYPE = x; } \ 22void s_##TYPE (void) { r_##TYPE (data_##TYPE); } 23 24TEST(V16QImode) 25TEST(V8HImode) 26TEST(V4SImode) 27TEST(V2DImode) 28TEST(V4SFmode) 29TEST(V2DFmode) 30TEST(V8QImode) 31TEST(V4HImode) 32TEST(V2SImode) 33TEST(V2SFmode) 34