asm: internal/alg/hash/hash_avx2/impl_amd64.s internal/alg/compress/compress_sse41/impl_amd64.s

internal/alg/hash/hash_avx2/impl_amd64.s: avo/avx2/*.go
	( cd avo; go run ./avx2 ) > internal/alg/hash/hash_avx2/impl_amd64.s

internal/alg/compress/compress_sse41/impl_amd64.s: avo/sse41/*.go
	( cd avo; go run ./sse41 ) > internal/alg/compress/compress_sse41/impl_amd64.s

.PHONY: fmt
fmt:
	go fmt ./...

.PHONY: clean
clean:
	rm -f internal/alg/hash/hash_avx2/impl_amd64.s
	rm -f internal/alg/compress/compress_sse41/impl_amd64.s

.PHONY: test
test:
	go test -race -bench=. -benchtime=1x

.PHONY: vet
vet:
	GOOS=linux   GOARCH=386   GO386=softfloat go vet ./...
	GOOS=windows GOARCH=386   GO386=softfloat go vet ./...
	GOOS=linux   GOARCH=amd64 go vet ./...
	GOOS=windows GOARCH=amd64 go vet ./...
	GOOS=darwin  GOARCH=amd64 go vet ./...
	GOOS=linux   GOARCH=arm   go vet ./...
	GOOS=linux   GOARCH=arm64 go vet ./...
	GOOS=windows GOARCH=arm64 go vet ./...
	GOOS=darwin  GOARCH=arm64 go vet ./...
	GOOS=js      GOARCH=wasm  go vet ./...
	GOOS=linux   GOARCH=mips  go vet ./...