annotate gcc/testsuite/gcc.dg/pr64252.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR target/64252 */
kono
parents:
diff changeset
2 /* { dg-do run } */
kono
parents:
diff changeset
3 /* { dg-options "-O2" } */
kono
parents:
diff changeset
4 /* { dg-require-effective-target int32plus } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 typedef unsigned int V __attribute__((vector_size (32)));
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 __attribute__((noinline, noclone)) void
kono
parents:
diff changeset
9 foo (V *a, V *b, V *c, V *d, V *e)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 V t = __builtin_shuffle (*a, *b, *c);
kono
parents:
diff changeset
12 V v = __builtin_shuffle (t, (V) { ~0U, ~0U, ~0U, ~0U, ~0U, ~0U, ~0U, ~0U }, (V) { 0, 1, 8, 3, 4, 5, 9, 7 });
kono
parents:
diff changeset
13 v = v + *d;
kono
parents:
diff changeset
14 *e = v;
kono
parents:
diff changeset
15 }
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 int
kono
parents:
diff changeset
18 main ()
kono
parents:
diff changeset
19 {
kono
parents:
diff changeset
20 V a, b, c, d, e;
kono
parents:
diff changeset
21 int i;
kono
parents:
diff changeset
22 a = (V) { 1, 2, 3, 4, 5, 6, 7, 8 };
kono
parents:
diff changeset
23 b = (V) { 9, 10, 11, 12, 13, 14, 15, 16 };
kono
parents:
diff changeset
24 c = (V) { 1, 3, 5, 7, 9, 11, 13, 15 };
kono
parents:
diff changeset
25 d = (V) { 0, 0, 0, 0, 0, 0, 0, 0 };
kono
parents:
diff changeset
26 foo (&a, &b, &c, &d, &e);
kono
parents:
diff changeset
27 for (i = 0; i < 8; i++)
kono
parents:
diff changeset
28 if (e[i] != ((i == 2 || i == 6) ? ~0U : 2 + 2 * i))
kono
parents:
diff changeset
29 __builtin_abort ();
kono
parents:
diff changeset
30 return 0;
kono
parents:
diff changeset
31 }