CFLAGS=-g -O3
PARAMS=0 0

all: movdqa standard movdqu

movdqa: main.o autovectors.o
	gcc -g -o $@ $^

standard: main.o standard.o
	gcc -g -o $@ $^

movdqu: main.o autovectors1.o
	gcc -g -o $@ $^

perf: all
	@grep "model name" /proc/cpuinfo|head -1
	@standard 1 1 #warmup to avoid effects from clock speed changes
	@for i in movdqa movdqu standard; do echo $$i; perf stat -r 100 -e cycles:u $$i $(PARAMS); done

#perfex events for Core 2 like CPUs
#0x410000@0x40000001 = user cycles
perfex: all
	@grep "model name" /proc/cpuinfo|head -1
	@standard 1 1 #warmup to avoid effects from clock speed changes
	@for i in movdqa movdqu standard; do echo $$i; perfex -e 0x410000@0x40000001 $$i $(PARAMS); done	

dist: all
	-rm -rf autovectors
	mkdir autovectors
	for i in Makefile README autovectors.c autovectors.o autovectors1.s autovectors1.o main.c main.o movdqa movdqu standard standard.c standard.o; do cp -p $$i autovectors; done
	tar cvfz autovectors.tar.gz autovectors

clean:
	rm movdqa standard movdqu *.o
