blob: ead3586699e7b11a66855ad62d0010905a02cdcf [file] [log] [blame]
/****
Copyright (C) 1996 McGill University.
Copyright (C) 1996 McCAT System Group.
Copyright (C) 1996 ACAPS Benchmark Administrator
benadmin@acaps.cs.mcgill.ca
This program is free software; you can redistribute it and/or modify
it provided this copyright notice is maintained.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
****/
#include <stdio.h>
#include "IOtest.h"
/* slow version */
static void initminB(char_t *res)
{
setac(0);
*res=255;
}
static void initmaxB(char_t *res)
{
setac(0);
*res=0;
}
static void initaddB(char_t *res)
{
setac(0);
*res=0;
}
static void initmultB(char_t *res)
{
setac(0);
*res=1;
}
static void stepminB(char_t *res)
/* {{{ */
{
register char_t t;
unsigned long i;
t=array(getac());
*res=min(*res,t);
i=getac()+4097;
setac(i);
}
/* }}} */
static void stepmaxB(char_t *res)
/* {{{ */
{
register char_t t;
unsigned long i;
t=array(getac());
*res=max(*res,t);
i=getac()+4097 ;
setac(i);
}
/* }}} */
static void stepaddB(char_t *res)
/* {{{ */
{
register char_t t;
unsigned long i;
t=array(getac());
*res=add(*res,t);
i=getac()+4097;
setac(i);
}
/* }}} */
static void stepmultB(char_t *res)
/* {{{ */
{
register char_t t;
unsigned long i;
t=array(getac());
*res=mult(*res,t);
i=getac()+4097;
setac(i);
}
/* }}} */
void testC()
{
struct global_result res;
initarray();
loop((void (*)(void *))&initminB,(void (*)(void *))&stepminB,&(res.min));
loop((void (*)(void *))&initmaxB,(void (*)(void *))&stepmaxB,&(res.max));
loop((void (*)(void *))&initaddB,(void (*)(void *))&stepaddB,&(res.add));
loop((void (*)(void *))&initmultB,(void (*)(void *))&stepmultB,&(res.mult));
printf("C %d min %d max %d add %d mult \n",res.min,res.max,res.add,res.mult);
}