* gcc.dg/const-elim-1.c: xfail for xtensa.
[official-gcc.git] / gcc / testsuite / gcc.dg / i386-loop-3.c
blobc1b4bcea5be49bd5a29bcca5752ed60b41b02392
1 /* PR target/11044 */
2 /* Originator: Tim McGrath <misty-@charter.net> */
3 /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
4 /* { dg-do run { target i?86-*-* } } */
5 /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */
7 typedef struct
9 unsigned char colormod;
10 } entity_state_t;
12 typedef struct
14 int num_entities;
15 entity_state_t *entities;
16 } packet_entities_t;
18 typedef struct
20 double senttime;
21 float ping_time;
22 packet_entities_t entities;
23 } client_frame_t;
25 typedef enum
27 cs_free,
28 cs_server,
29 cs_zombie,
30 cs_connected,
31 cs_spawned
32 } sv_client_state_t;
34 typedef struct client_s
36 sv_client_state_t state;
37 int ping;
38 client_frame_t frames[64];
39 } client_t;
41 int CalcPing (client_t *cl)
43 float ping;
44 int count, i;
45 register client_frame_t *frame;
47 if (cl->state == cs_server)
48 return cl->ping;
49 ping = 0;
50 count = 0;
51 for (frame = cl->frames, i = 0; i < 64; i++, frame++) {
52 if (frame->ping_time > 0) {
53 ping += frame->ping_time;
54 count++;
57 if (!count)
58 return 9999;
59 ping /= count;
61 return ping * 1000;
64 int main(void)
66 client_t cl;
68 memset(&cl, 0, sizeof(cl));
70 cl.frames[0].ping_time = 1.0f;
72 if (CalcPing(&cl) != 1000)
73 abort();
75 return 0;