1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-cddce1 -Wno-psabi" } */
3 /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */
4 
5 typedef int v4si __attribute__((vector_size(16)));
6 typedef float v4sf __attribute__((vector_size(16)));
7 
vec_cast(v4si f)8 v4sf vec_cast(v4si f)
9 {
10   return (v4sf){f[0], f[1], f[2], f[3]};
11 }
12 
vec_cast_perm(v4si f)13 v4sf vec_cast_perm(v4si f)
14 {
15   return (v4sf){f[1], f[1], f[2], f[3]};
16 }
17 
18 /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 1 "cddce1" { target { i?86-*-* x86_64-*-* } } } } */
19 /* { dg-final { scan-tree-dump-times "\\\(v4sf\\\) " 2 "cddce1" { target { i?86-*-* x86_64-*-* } } } } */
20