CFLAGS=-O -falign-loops=32

ALL=move move1a move1 move2 move3
ALL1=cmove smove lmove cmove-gforth

all: $(ALL) $(ALL1)

zen3: all
	for i in $(ALL) "cmove-gforth 1" "cmove 1" "cmove 2" "cmove 4" "cmove 8" "smove 2" "smove 4" "smove 8" "lmove 4" "lmove 8"; do perf stat -x ' ' -e cycles:u -e ls_stlf:u -e ls_bad_status2.stli_other:u $$i 2>&1 >/dev/null | awk -vn="$$i" '{l[$$2]=$$1} END {c=1000000000.0; printf("%4.2f %6.4f %6.4f %s\n",l["cycles:u"]/c,l["ls_stlf:u"]/c,l["ls_bad_status2.stli_other:u"]/c,n)}'; done

zen: all
	for i in $(ALL) "cmove-gforth 1" "cmove 1" "cmove 2" "cmove 4" "cmove 8" "smove 2" "smove 4" "smove 8" "lmove 4" "lmove 8"; do perf stat -x ' ' -e cycles:u -e ls_stlf:u $$i 2>&1 >/dev/null | awk -vn="$$i" '{l[$$2]=$$1} END {c=1000000000.0; printf("%5.2f %6.4f %s\n",l["cycles:u"]/c,l["ls_stlf:u"]/c,n)}'; done

cyc: all
	for i in $(ALL) "cmove-gforth 1" "cmove 1" "cmove 2" "cmove 4" "cmove 8" "smove 2" "smove 4" "smove 8" "lmove 4" "lmove 8"; do perf stat -x ' ' -e cycles:u $$i 2>&1 >/dev/null | awk -vn="$$i" '{l[$$2]=$$1} END {c=1000000000.0; printf("%5.2f %s\n",l["cycles:u"]/c,n)}'; done


move: main.o move.o
	gcc -o move main.o move.o

move1a: main1.o move1.o
	gcc -o move1a main1.o move1.o

move1: main.o move1.o
	gcc -o move1 main.o move1.o

move2: main.o move2.o
	gcc -o move2 main.o move2.o

move3: main.o move3.o
	gcc -o move3 main.o move3.o

cmove-gforth: main2.o cmove-gforth.o
	gcc -o cmove-gforth main2.o cmove-gforth.o

cmove: main2.o cmove.o
	gcc -o cmove main2.o cmove.o

smove: main2.o smove.o
	gcc -o smove main2.o smove.o

lmove: main2.o lmove.o
	gcc -o lmove main2.o lmove.o

