From 37c2d4e8e6c66e51c132ffe99d2f98ec92eb3cc9 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Tue, 11 Aug 2009 04:01:08 +0000 Subject: Also build with ccc for benchmarking git-svn-id: svn://mattst88.com/svn/cpml-benchmarks@3 dfcbb71e-afff-4d4a-b3c7-756acd92cddf --- Makefile | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- math.c | 18 +++++++++-- 2 files changed, 113 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 339da87..94259b8 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,32 @@ CC=gcc -CFLAGS=-O3 -mcpu=ev67 -mieee -funroll-loops - -TESTS= sin_glibc sin_cpml cos_glibc cos_cpml tan_glibc tan_cpml \ - sinh_glibc sinh_cpml cosh_glibc cosh_cpml tanh_glibc tanh_cpml \ - asin_glibc asin_cpml acos_glibc acos_cpml atan_glibc atan_cpml \ - asinh_glibc asinh_cpml acosh_glibc acosh_cpml atanh_glibc atanh_cpml \ - floor_glibc floor_cpml ceil_glibc ceil_cpml \ - round_glibc round_cpml trunc_glibc trunc_cpml \ - log_glibc log_cpml log10_glibc log10_cpml log2_glibc log2_cpml log1p_glibc log1p_cpml \ - exp_glibc exp_cpml expm1_glibc expm1_cpml exp2_glibc exp2_cpml +CFLAGS=-O3 -mcpu=ev67 -mieee + +CCC=ccc +CCFLAGS=-O3 -host + +TESTS= sin_glibc sin_cpml sin_ccc \ + cos_glibc cos_cpml cos_ccc \ + tan_glibc tan_cpml tan_ccc \ + sinh_glibc sinh_cpml sinh_ccc \ + cosh_glibc cosh_cpml cosh_ccc \ + tanh_glibc tanh_cpml tanh_ccc \ + asin_glibc asin_cpml asin_ccc \ + acos_glibc acos_cpml acos_ccc \ + atan_glibc atan_cpml atan_ccc \ + asinh_glibc asinh_cpml asinh_ccc \ + acosh_glibc acosh_cpml acosh_ccc \ + atanh_glibc atanh_cpml atanh_ccc \ + floor_glibc floor_cpml floor_ccc \ + ceil_glibc ceil_cpml ceil_ccc \ + round_glibc round_cpml round_ccc \ + trunc_glibc trunc_cpml trunc_ccc \ + log_glibc log_cpml log_ccc \ + log10_glibc log10_cpml log10_ccc \ + log2_glibc log2_cpml log2_ccc \ + log1p_glibc log1p_cpml log1p_ccc \ + exp_glibc exp_cpml exp_ccc \ + expm1_glibc expm1_cpml expm1_ccc \ + exp2_glibc exp2_cpml exp2_ccc all: $(TESTS) @@ -28,135 +46,204 @@ sin_glibc: math.c sin_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=sin -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +sin_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=sin -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + cos_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=cos -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lm cos_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=cos -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +cos_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=sin -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + tan_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=tan -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lm tan_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=tan -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +tan_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=tan -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + sinh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=sinh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lm sinh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=sinh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +sinh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=sinh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + cosh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=cosh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lm cosh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=cosh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +cosh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=cosh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + tanh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=tanh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lm tanh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=tanh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml +tanh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=tanh -DDOMAIN_START="-2.0*M_PI" -DDOMAIN_END="2.0*M_PI" $< -o $@ -lcpml + asin_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=asin -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm asin_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=asin -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +asin_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=asin -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + acos_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=acos -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm acos_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=acos -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +acos_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=acos -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + atan_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=atan -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm atan_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=atan -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +atan_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=atan -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + asinh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=asinh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm asinh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=asinh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +asinh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=asinh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + acosh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=acosh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm acosh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=acosh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +acosh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=acosh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + atanh_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=atanh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lm atanh_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=atanh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml +atanh_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=atanh -DDOMAIN_START="-1.0" -DDOMAIN_END="1.0" $< -o $@ -lcpml + floor_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=floor -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm floor_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=floor -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +floor_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=floor -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + ceil_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=ceil -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm ceil_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=ceil -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +ceil_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=ceil -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + round_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=round -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm round_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=round -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +round_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=round -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + trunc_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=trunc -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm trunc_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=trunc -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +trunc_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=trunc -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + log_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=log -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm log_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=log -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +log_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=log -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + log10_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=log10 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm log10_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=log10 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +log10_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=log10 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + log2_glibc: math.c - ${CC} ${CFLAGS} -DFUNCTION=log2 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm + ${CCC} ${CFLAGS} -DFUNCTION=log2 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm log2_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=log2 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +log2_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=log2 -DDOMAIN_START="0.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + log1p_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=log1p -DDOMAIN_START="-0.75" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm log1p_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=log1p -DDOMAIN_START="-0.75" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +log1p_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=log1p -DDOMAIN_START="-0.75" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + exp_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=exp -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm exp_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=exp -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +exp_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=exp -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + expm1_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=expm1 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm expm1_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=expm1 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +expm1_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=expm1 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + exp2_glibc: math.c ${CC} ${CFLAGS} -DFUNCTION=exp2 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lm exp2_cpml: math.c ${CC} ${CFLAGS} -DFUNCTION=exp2 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml +exp2_ccc: math.c + ${CCC} ${CCFLAGS} -DFUNCTION=exp2 -DDOMAIN_START="-10.0" -DDOMAIN_END="10.0" -DINCREMENT="0.25" $< -o $@ -lcpml + diff --git a/math.c b/math.c index 3c99e51..8e9629d 100644 --- a/math.c +++ b/math.c @@ -1,8 +1,19 @@ +#ifdef __DECC + +#include +#define __rpcc(x) __RPCC(x) +extern int printf (const char * format, ...); +#define M_PI 3.14159265358979323846 /* pi */ + +#elif defined __GNUC__ + +#define __rpcc(x) __builtin_alpha_rpcc(x) #include #include -#include -#define __rpcc __builtin_alpha_rpcc +#else +#error Unknown compiler +#endif #define CPML "cpml" #define GLIBC "glibc" @@ -25,13 +36,14 @@ double FUNCTION(double); #define INCREMENT 0.1 #endif + int main(int argc, char * argv[]) { double x; double results[100]; int i; int iterations; - uint32_t start, end; + unsigned int start, end; start = __rpcc(); -- cgit v1.2.3