URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [gcc.target/] [i386/] [loop-3.c] - Rev 20
Go to most recent revision | Compare with Previous | Blame | View Log
/* PR target/11044 */ /* Originator: Tim McGrath <misty-@charter.net> */ /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ /* { dg-require-effective-target ilp32 } */ /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */ extern void *memset (void *, int, __SIZE_TYPE__); extern void abort (void); typedef struct { unsigned char colormod; } entity_state_t; typedef struct { int num_entities; entity_state_t *entities; } packet_entities_t; typedef struct { double senttime; float ping_time; packet_entities_t entities; } client_frame_t; typedef enum { cs_free, cs_server, cs_zombie, cs_connected, cs_spawned } sv_client_state_t; typedef struct client_s { sv_client_state_t state; int ping; client_frame_t frames[64]; } client_t; int CalcPing (client_t *cl) { float ping; int count, i; register client_frame_t *frame; if (cl->state == cs_server) return cl->ping; ping = 0; count = 0; for (frame = cl->frames, i = 0; i < 64; i++, frame++) { if (frame->ping_time > 0) { ping += frame->ping_time; count++; } } if (!count) return 9999; ping /= count; return ping * 1000; } int main(void) { client_t cl; memset(&cl, 0, sizeof(cl)); cl.frames[0].ping_time = 1.0f; if (CalcPing(&cl) != 1000) abort(); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log