1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-ccp1" } */
4 typedef int veci
__attribute__ ((vector_size (4 * sizeof (int))));
6 void fun (veci
*f
, veci
*g
, veci
*h
, veci
*i
)
8 veci m
= { 7, 7, 4, 6 };
9 veci n
= { 0, 1, 2, 3 };
10 veci p
= { 1, 1, 7, 6 };
11 *i
= __builtin_shuffle (*i
, p
, m
);
12 *h
= __builtin_shuffle (*h
, *h
, p
);
13 *g
= __builtin_shuffle (*f
, *g
, m
);
14 *f
= __builtin_shuffle (*f
, *g
, n
);
17 /* { dg-final { scan-tree-dump "VEC_PERM_EXPR.*{ 3, 3, 0, 2 }" "ccp1" } } */
18 /* { dg-final { scan-tree-dump "VEC_PERM_EXPR.*{ 1, 1, 3, 2 }" "ccp1" } } */
19 /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 2 "ccp1" } } */
20 /* { dg-final { cleanup-tree-dump "ccp1" } } */