1/* PR target/65078 */ 2/* { dg-do compile } */ 3/* { dg-options "-O2 -mavx" } */ 4/* { dg-additional-options "-mregparm=2" { target ia32 } } */ 5/* { dg-final { scan-assembler-not "\\(%\[er\]sp\\)" } } */ 6 7typedef unsigned char V __attribute__((vector_size (32))); 8typedef unsigned long long W __attribute__((vector_size (32))); 9typedef unsigned int T __attribute__((vector_size (32))); 10 11void 12f1 (unsigned long long *x, V y) 13{ 14 *x = ((W)y)[0]; 15} 16 17#if defined(__x86_64__) || defined(ALL) 18unsigned long long 19f2 (V y) 20{ 21 return ((W)y)[0]; 22} 23#endif 24 25void 26f3 (unsigned int *x, V y) 27{ 28 *x = ((T)y)[0]; 29} 30 31unsigned int 32f4 (V y) 33{ 34 return ((T)y)[0]; 35} 36 37void 38f5 (unsigned long long *x, W y) 39{ 40 *x = ((W)y)[0]; 41} 42 43#if defined(__x86_64__) || defined(ALL) 44unsigned long long 45f6 (W y) 46{ 47 return ((W)y)[0]; 48} 49#endif 50 51void 52f7 (unsigned int *x, T y) 53{ 54 *x = ((T)y)[0]; 55} 56 57unsigned int 58f8 (T y) 59{ 60 return ((T)y)[0]; 61} 62