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