/* { dg-do assemble } * /* { dg-skip-if "" { ! { clmcpu } } } */ /* { dg-options "-O3 -funroll-loops -mno-sdata -mcpu=arc700" } */ typedef long long a __attribute__((__mode__(__DI__))); typedef struct c c; struct b { int d; c *e; }; enum { f }; typedef struct { a g; a h; int i; } j; struct c { int count; int current; }; int k; extern void bar (int, long long); int foo (struct b *demux, __builtin_va_list args) { c m = *demux->e; j *n; switch (k) case f: { a o = __builtin_va_arg(args, a); m.current = 0; while (m.current < m.count) { if (n[m.current].h > o) { bar (demux->d, 4 + 128LL * n[m.current].i); break; } m.current++; } return 0; } }