1 /* Inspired from sbitmap_a_or_b_and_c_cg function in sbitmap.c. */
3 /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves" } */
5 extern void abort (void);
7 int a[5] = { 0, 1, 0, 0, 0 };
8 int b[5] = { 0, 1, 0, 1, 0 };
9 int c[5] = { 0, 0, 1, 1, 0 };
10 int dst[5] = { 0, 0, 0, 0, 0 };
13 foo (int size, int *ap, int *bp, int *cp, int *dstp)
15 unsigned int i, n = size;
18 for (i = 0; i < n; i++)
20 const int tmp = *ap++ | (*bp++ & *cp++);
21 changed |= *dstp ^ tmp;
32 foo (5, a, b, c, dst);