cmd/benchstat: add basic golden test

Change-Id: I778bee598aa32c213ccfa956f63e8b55360e99ae
Reviewed-on: https://go-review.googlesource.com/35932
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Quentin Smith <quentin@golang.org>
diff --git a/cmd/benchstat/main_test.go b/cmd/benchstat/main_test.go
new file mode 100644
index 0000000..67c2fe8
--- /dev/null
+++ b/cmd/benchstat/main_test.go
@@ -0,0 +1,96 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+	"bytes"
+	"io/ioutil"
+	"os"
+	"os/exec"
+	"testing"
+)
+
+func TestGolden(t *testing.T) {
+	if err := os.Chdir("testdata"); err != nil {
+		t.Fatal(err)
+	}
+	defer os.Chdir("..")
+	check(t, "exampleold", "exampleold.txt")
+	check(t, "example", "exampleold.txt", "examplenew.txt")
+	if t.Failed() {
+		t.Fatal("skipping other tests")
+	}
+	check(t, "examplehtml", "-html", "exampleold.txt", "examplenew.txt")
+	if t.Failed() {
+		t.Fatal("skipping other tests")
+	}
+	check(t, "all", "new.txt", "old.txt", "slashslash4.txt", "x386.txt")
+	check(t, "oldnew", "old.txt", "new.txt")
+	check(t, "oldnewgeo", "-geomean", "old.txt", "new.txt")
+	check(t, "new4", "new.txt", "slashslash4.txt")
+	check(t, "oldnewhtml", "-html", "old.txt", "new.txt")
+	check(t, "oldnew4html", "-html", "old.txt", "new.txt", "slashslash4.txt")
+	check(t, "oldnewttest", "-delta-test=ttest", "old.txt", "new.txt")
+}
+
+func check(t *testing.T, name string, files ...string) {
+	t.Run(name, func(t *testing.T) {
+		os.Args = append([]string{"benchstat"}, files...)
+		r, w, err := os.Pipe()
+		if err != nil {
+			t.Fatal(err)
+		}
+		c := make(chan []byte)
+		go func() {
+			data, err := ioutil.ReadAll(r)
+			if err != nil {
+				t.Error(err)
+			}
+			c <- data
+		}()
+		stdout := os.Stdout
+		stderr := os.Stderr
+		os.Stdout = w
+		os.Stderr = w
+		*flagGeomean = false
+		*flagHTML = false
+		*flagDeltaTest = "utest"
+
+		main()
+
+		w.Close()
+		os.Stdout = stdout
+		os.Stderr = stderr
+
+		data := <-c
+		golden, err := ioutil.ReadFile(name + ".golden")
+		if err != nil {
+			t.Fatal(err)
+		}
+		if !bytes.Equal(data, golden) {
+			t.Errorf("wrong output: diff have want:\n%s", diff(t, data, golden))
+		}
+	})
+}
+
+// diff returns the output of 'diff -u old new'.
+func diff(t *testing.T, old, new []byte) string {
+	data, err := exec.Command("diff", "-u", writeTemp(t, old), writeTemp(t, new)).CombinedOutput()
+	if len(data) > 0 {
+		return string(data)
+	}
+	return "ERROR: " + err.Error()
+}
+
+func writeTemp(t *testing.T, data []byte) string {
+	f, err := ioutil.TempFile("", "benchstat_test")
+	if err != nil {
+		t.Fatal(err)
+	}
+	f.Write(data)
+	name := f.Name()
+	f.Close()
+	return name
+}
diff --git a/cmd/benchstat/testdata/all.golden b/cmd/benchstat/testdata/all.golden
new file mode 100644
index 0000000..eff91db
--- /dev/null
+++ b/cmd/benchstat/testdata/all.golden
@@ -0,0 +1,75 @@
+name \ time/op                             new.txt        old.txt        slashslash4.txt  x386.txt
+CRC32/poly=IEEE/size=15/align=0-8            44.5ns ± 3%    46.9ns ± 8%                     62.4ns ± 9%
+CRC32/poly=IEEE/size=15/align=1-8            44.5ns ± 4%    44.7ns ± 5%                     63.5ns ± 8%
+CRC32/poly=IEEE/size=40/align=0-8            42.5ns ± 6%    41.0ns ± 1%      42.1ns ± 3%    57.4ns ± 3%
+CRC32/poly=IEEE/size=40/align=1-8            42.0ns ± 3%    41.1ns ± 1%      41.7ns ± 5%    57.3ns ± 3%
+CRC32/poly=IEEE/size=512/align=0-8           57.1ns ± 3%   238.0ns ± 5%                    332.3ns ± 2%
+CRC32/poly=IEEE/size=512/align=1-8           57.2ns ± 3%   235.5ns ± 3%                    335.3ns ± 3%
+CRC32/poly=IEEE/size=1kB/align=0-8           94.1ns ± 2%   452.5ns ± 4%                    626.3ns ± 2%
+CRC32/poly=IEEE/size=1kB/align=1-8           93.3ns ± 2%   443.6ns ± 2%                    635.3ns ± 6%
+CRC32/poly=IEEE/size=4kB/align=0-8            298ns ± 1%    1740ns ± 8%      1682ns ± 2%    2457ns ± 7%
+CRC32/poly=IEEE/size=4kB/align=1-8            299ns ± 3%    1764ns ± 6%      1690ns ± 4%    2434ns ± 5%
+CRC32/poly=IEEE/size=32kB/align=0-8          2.16µs ± 3%   14.95µs ± 7%                    19.15µs ± 4%
+CRC32/poly=IEEE/size=32kB/align=1-8          2.18µs ± 3%   14.19µs ± 7%                    19.42µs ± 5%
+CRC32/poly=Castagnoli/size=15/align=0-8      16.3ns ± 2%    16.4ns ± 3%                     59.4ns ± 1%
+CRC32/poly=Castagnoli/size=15/align=1-8      17.3ns ± 2%    17.2ns ± 2%                     59.4ns ± 2%
+CRC32/poly=Castagnoli/size=40/align=0-8      17.5ns ± 4%    17.4ns ± 2%      18.6ns ±11%    59.7ns ± 6%
+CRC32/poly=Castagnoli/size=40/align=1-8      19.4ns ± 2%    19.7ns ± 3%      19.6ns ± 2%    58.1ns ± 7%
+CRC32/poly=Castagnoli/size=512/align=0-8     40.1ns ± 4%    40.2ns ± 2%                    350.8ns ± 5%
+CRC32/poly=Castagnoli/size=512/align=1-8     41.9ns ± 2%    42.1ns ± 3%                    349.8ns ± 7%
+CRC32/poly=Castagnoli/size=1kB/align=0-8     66.2ns ± 1%    65.5ns ± 1%                    656.7ns ± 4%
+CRC32/poly=Castagnoli/size=1kB/align=1-8     68.5ns ± 2%    70.1ns ± 6%                    656.8ns ± 6%
+CRC32/poly=Castagnoli/size=4kB/align=0-8      159ns ± 3%     163ns ± 5%       161ns ± 8%    2452ns ± 4%
+CRC32/poly=Castagnoli/size=4kB/align=1-8      162ns ± 3%     169ns ± 6%       170ns ± 8%    2448ns ± 5%
+CRC32/poly=Castagnoli/size=32kB/align=0-8    1.21µs ± 3%    1.22µs ± 4%                    20.53µs ± 5%
+CRC32/poly=Castagnoli/size=32kB/align=1-8    1.22µs ± 4%    1.26µs ± 3%                    20.18µs ± 9%
+CRC32/poly=Koopman/size=15/align=0-8         35.6ns ± 3%    36.5ns ±11%                     58.2ns ± 4%
+CRC32/poly=Koopman/size=15/align=1-8         35.5ns ± 1%    35.1ns ± 5%                     56.4ns ± 7%
+CRC32/poly=Koopman/size=40/align=0-8         87.6ns ± 2%    91.6ns ± 9%      93.8ns ±13%   142.3ns ± 8%
+CRC32/poly=Koopman/size=40/align=1-8         88.0ns ± 3%    91.1ns ± 6%      86.9ns ± 3%   136.2ns ± 5%
+CRC32/poly=Koopman/size=512/align=0-8        1.08µs ± 3%    1.13µs ± 5%                     1.68µs ± 5%
+CRC32/poly=Koopman/size=512/align=1-8        1.17µs ± 8%    1.13µs ± 6%                     1.64µs ± 4%
+CRC32/poly=Koopman/size=1kB/align=0-8        2.34µs ± 4%    2.24µs ± 6%                     3.31µs ± 4%
+CRC32/poly=Koopman/size=1kB/align=1-8        2.36µs ± 5%    2.15µs ± 2%                     3.28µs ± 3%
+CRC32/poly=Koopman/size=4kB/align=0-8        9.00µs ± 6%    9.03µs ± 6%      9.08µs ± 8%   13.32µs ± 3%
+CRC32/poly=Koopman/size=4kB/align=1-8        9.05µs ±12%    8.94µs ±10%      9.46µs ± 8%   13.16µs ± 3%
+CRC32/poly=Koopman/size=32kB/align=0-8       72.9µs ± 4%    72.4µs ± 9%                    106.9µs ± 6%
+CRC32/poly=Koopman/size=32kB/align=1-8       74.3µs ± 3%    69.6µs ± 3%                    106.1µs ± 4%
+
+name \ speed                               new.txt        old.txt        slashslash4.txt  x386.txt
+CRC32/poly=IEEE/size=15/align=0-8           337MB/s ± 3%   321MB/s ± 8%                    241MB/s ± 8%
+CRC32/poly=IEEE/size=15/align=1-8           337MB/s ± 4%   336MB/s ± 4%                    237MB/s ± 8%
+CRC32/poly=IEEE/size=40/align=0-8           942MB/s ± 5%   975MB/s ± 1%     951MB/s ± 3%   696MB/s ± 3%
+CRC32/poly=IEEE/size=40/align=1-8           952MB/s ± 3%   974MB/s ± 1%     960MB/s ± 4%   698MB/s ± 3%
+CRC32/poly=IEEE/size=512/align=0-8         8.97GB/s ± 3%  2.15GB/s ± 4%                   1.54GB/s ± 2%
+CRC32/poly=IEEE/size=512/align=1-8         8.96GB/s ± 3%  2.17GB/s ± 3%                   1.52GB/s ± 3%
+CRC32/poly=IEEE/size=1kB/align=0-8         10.9GB/s ± 2%   2.3GB/s ± 4%                    1.6GB/s ± 2%
+CRC32/poly=IEEE/size=1kB/align=1-8         11.0GB/s ± 2%   2.3GB/s ± 2%                    1.6GB/s ± 6%
+CRC32/poly=IEEE/size=4kB/align=0-8         13.7GB/s ± 1%   2.4GB/s ± 7%     2.4GB/s ± 2%   1.7GB/s ± 7%
+CRC32/poly=IEEE/size=4kB/align=1-8         13.7GB/s ± 3%   2.3GB/s ± 6%     2.4GB/s ± 4%   1.7GB/s ± 5%
+CRC32/poly=IEEE/size=32kB/align=0-8        15.2GB/s ± 3%   2.2GB/s ± 7%                    1.7GB/s ± 4%
+CRC32/poly=IEEE/size=32kB/align=1-8        15.0GB/s ± 3%   2.3GB/s ± 8%                    1.7GB/s ± 5%
+CRC32/poly=Castagnoli/size=15/align=0-8     920MB/s ± 2%   916MB/s ± 2%                    253MB/s ± 1%
+CRC32/poly=Castagnoli/size=15/align=1-8     867MB/s ± 2%   870MB/s ± 2%                    253MB/s ± 2%
+CRC32/poly=Castagnoli/size=40/align=0-8    2.28GB/s ± 4%  2.30GB/s ± 2%    2.16GB/s ±11%  0.67GB/s ± 6%
+CRC32/poly=Castagnoli/size=40/align=1-8    2.06GB/s ± 2%  2.03GB/s ± 3%    2.04GB/s ± 2%  0.69GB/s ± 6%
+CRC32/poly=Castagnoli/size=512/align=0-8   12.8GB/s ± 4%  12.7GB/s ± 2%                    1.5GB/s ± 5%
+CRC32/poly=Castagnoli/size=512/align=1-8   12.2GB/s ± 1%  12.1GB/s ± 3%                    1.5GB/s ± 7%
+CRC32/poly=Castagnoli/size=1kB/align=0-8   15.5GB/s ± 1%  15.6GB/s ± 1%                    1.6GB/s ± 4%
+CRC32/poly=Castagnoli/size=1kB/align=1-8   15.0GB/s ± 2%  14.6GB/s ± 6%                    1.6GB/s ± 5%
+CRC32/poly=Castagnoli/size=4kB/align=0-8   25.7GB/s ± 3%  25.1GB/s ± 5%    25.4GB/s ± 7%   1.7GB/s ± 4%
+CRC32/poly=Castagnoli/size=4kB/align=1-8   25.3GB/s ± 3%  24.1GB/s ± 6%    24.1GB/s ± 8%   1.7GB/s ± 5%
+CRC32/poly=Castagnoli/size=32kB/align=0-8  26.8GB/s ± 5%  26.9GB/s ± 4%                    1.6GB/s ± 5%
+CRC32/poly=Castagnoli/size=32kB/align=1-8  26.8GB/s ± 4%  25.9GB/s ± 3%                    1.6GB/s ± 8%
+CRC32/poly=Koopman/size=15/align=0-8        421MB/s ± 3%   412MB/s ±10%                    258MB/s ± 5%
+CRC32/poly=Koopman/size=15/align=1-8        422MB/s ± 1%   427MB/s ± 5%                    266MB/s ± 6%
+CRC32/poly=Koopman/size=40/align=0-8        456MB/s ± 2%   437MB/s ± 9%     428MB/s ±12%   281MB/s ± 7%
+CRC32/poly=Koopman/size=40/align=1-8        455MB/s ± 3%   440MB/s ± 6%     461MB/s ± 3%   290MB/s ± 8%
+CRC32/poly=Koopman/size=512/align=0-8       476MB/s ± 3%   453MB/s ± 5%                    304MB/s ± 5%
+CRC32/poly=Koopman/size=512/align=1-8       440MB/s ± 8%   455MB/s ± 6%                    312MB/s ± 3%
+CRC32/poly=Koopman/size=1kB/align=0-8       438MB/s ± 4%   452MB/s ± 9%                    310MB/s ± 4%
+CRC32/poly=Koopman/size=1kB/align=1-8       434MB/s ± 5%   477MB/s ± 2%                    312MB/s ± 3%
+CRC32/poly=Koopman/size=4kB/align=0-8       455MB/s ± 6%   454MB/s ± 5%     452MB/s ± 8%   308MB/s ± 3%
+CRC32/poly=Koopman/size=4kB/align=1-8       455MB/s ±11%   459MB/s ± 9%     434MB/s ± 9%   311MB/s ± 3%
+CRC32/poly=Koopman/size=32kB/align=0-8      450MB/s ± 4%   453MB/s ± 8%                    307MB/s ± 6%
+CRC32/poly=Koopman/size=32kB/align=1-8      441MB/s ± 3%   471MB/s ± 3%                    309MB/s ± 4%
diff --git a/cmd/benchstat/testdata/example.golden b/cmd/benchstat/testdata/example.golden
new file mode 100644
index 0000000..f98bd9e
--- /dev/null
+++ b/cmd/benchstat/testdata/example.golden
@@ -0,0 +1,7 @@
+name        old time/op    new time/op    delta
+GobEncode     13.6ms ± 1%    11.8ms ± 1%  -13.31%  (p=0.016 n=4+5)
+JSONEncode    32.1ms ± 1%    31.8ms ± 1%     ~     (p=0.286 n=4+5)
+
+name        old speed      new speed      delta
+GobEncode   56.4MB/s ± 1%  65.1MB/s ± 1%  +15.36%  (p=0.016 n=4+5)
+JSONEncode  60.4MB/s ± 1%  61.1MB/s ± 2%     ~     (p=0.286 n=4+5)
diff --git a/cmd/benchstat/testdata/examplehtml.golden b/cmd/benchstat/testdata/examplehtml.golden
new file mode 100644
index 0000000..34c4c05
--- /dev/null
+++ b/cmd/benchstat/testdata/examplehtml.golden
@@ -0,0 +1,13 @@
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name</th><th>old time/op</th><th>new time/op</th><th>delta</th>
+<tr><td>GobEncode</td><td>13.6ms ± 1%</td><td>11.8ms ± 1%</td><td>-13.31%</td><td>(p=0.016 n=4+5)</td>
+<tr><td>JSONEncode</td><td>32.1ms ± 1%</td><td>31.8ms ± 1%</td><td>~   </td><td>(p=0.286 n=4+5)</td>
+</table>
+
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name</th><th>old speed</th><th>new speed</th><th>delta</th>
+<tr><td>GobEncode</td><td>56.4MB/s ± 1%</td><td>65.1MB/s ± 1%</td><td>+15.36%</td><td>(p=0.016 n=4+5)</td>
+<tr><td>JSONEncode</td><td>60.4MB/s ± 1%</td><td>61.1MB/s ± 2%</td><td>~   </td><td>(p=0.286 n=4+5)</td>
+</table>
diff --git a/cmd/benchstat/testdata/examplenew.txt b/cmd/benchstat/testdata/examplenew.txt
new file mode 100644
index 0000000..9463228
--- /dev/null
+++ b/cmd/benchstat/testdata/examplenew.txt
@@ -0,0 +1,10 @@
+BenchmarkGobEncode   	 100	  11773189 ns/op	  65.19 MB/s
+BenchmarkJSONEncode  	  50	  32036529 ns/op	  60.57 MB/s
+BenchmarkGobEncode   	 100	  11942588 ns/op	  64.27 MB/s
+BenchmarkJSONEncode  	  50	  32156552 ns/op	  60.34 MB/s
+BenchmarkGobEncode   	 100	  11786159 ns/op	  65.12 MB/s
+BenchmarkJSONEncode  	  50	  31288355 ns/op	  62.02 MB/s
+BenchmarkGobEncode   	 100	  11628583 ns/op	  66.00 MB/s
+BenchmarkJSONEncode  	  50	  31559706 ns/op	  61.49 MB/s
+BenchmarkGobEncode   	 100	  11815924 ns/op	  64.96 MB/s
+BenchmarkJSONEncode  	  50	  31765634 ns/op	  61.09 MB/s
diff --git a/cmd/benchstat/testdata/exampleold.golden b/cmd/benchstat/testdata/exampleold.golden
new file mode 100644
index 0000000..13c69a9
--- /dev/null
+++ b/cmd/benchstat/testdata/exampleold.golden
@@ -0,0 +1,7 @@
+name        time/op
+GobEncode     13.6ms ± 1%
+JSONEncode    32.1ms ± 1%
+
+name        speed
+GobEncode   56.4MB/s ± 1%
+JSONEncode  60.4MB/s ± 1%
diff --git a/cmd/benchstat/testdata/exampleold.txt b/cmd/benchstat/testdata/exampleold.txt
new file mode 100644
index 0000000..9ec3f51
--- /dev/null
+++ b/cmd/benchstat/testdata/exampleold.txt
@@ -0,0 +1,8 @@
+BenchmarkGobEncode   	100	  13552735 ns/op	  56.63 MB/s
+BenchmarkJSONEncode  	 50	  32395067 ns/op	  59.90 MB/s
+BenchmarkGobEncode   	100	  13553943 ns/op	  56.63 MB/s
+BenchmarkJSONEncode  	 50	  32334214 ns/op	  60.01 MB/s
+BenchmarkGobEncode   	100	  13606356 ns/op	  56.41 MB/s
+BenchmarkJSONEncode  	 50	  31992891 ns/op	  60.65 MB/s
+BenchmarkGobEncode   	100	  13683198 ns/op	  56.09 MB/s
+BenchmarkJSONEncode  	 50	  31735022 ns/op	  61.15 MB/s
diff --git a/cmd/benchstat/testdata/new.txt b/cmd/benchstat/testdata/new.txt
new file mode 100644
index 0000000..b45c622
--- /dev/null
+++ b/cmd/benchstat/testdata/new.txt
@@ -0,0 +1,367 @@
+pkg: hash/crc32
+goarch: amd64
+goos: darwin
+note: hw acceleration enabled
+
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        43.6 ns/op	 343.87 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        45.4 ns/op	 330.50 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        43.4 ns/op	 345.50 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        45.3 ns/op	 331.23 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        43.9 ns/op	 341.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        46.0 ns/op	 326.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        45.1 ns/op	 332.54 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        43.8 ns/op	 342.12 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        43.8 ns/op	 342.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        44.9 ns/op	 333.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        43.8 ns/op	 342.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.0 ns/op	 340.68 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        45.0 ns/op	 333.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.1 ns/op	 340.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        43.7 ns/op	 343.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        43.7 ns/op	 342.96 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.9 ns/op	 333.71 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        46.3 ns/op	 323.68 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.9 ns/op	 333.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.6 ns/op	 336.33 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        43.9 ns/op	 912.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.3 ns/op	 945.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.7 ns/op	 937.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        43.5 ns/op	 919.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        44.9 ns/op	 890.35 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.6 ns/op	 938.20 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.3 ns/op	 968.78 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.2 ns/op	 970.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.3 ns/op	 968.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.3 ns/op	 968.27 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.3 ns/op	 968.46 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.5 ns/op	 941.20 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        43.2 ns/op	 926.72 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.1 ns/op	 949.91 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.9 ns/op	 953.96 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.9 ns/op	 954.23 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.5 ns/op	 964.12 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.9 ns/op	 932.70 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.7 ns/op	 959.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.4 ns/op	 966.36 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 2000000	        56.1 ns/op	9128.24 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 2000000	        56.2 ns/op	9107.94 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 3000000	        56.1 ns/op	9129.45 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 3000000	        56.5 ns/op	9064.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 3000000	        58.1 ns/op	8819.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 3000000	        59.0 ns/op	8675.61 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 2000000	        55.9 ns/op	9157.53 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 3000000	        57.0 ns/op	8976.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 2000000	        58.7 ns/op	8724.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	 2000000	        57.6 ns/op	8887.48 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 2000000	        58.3 ns/op	8782.52 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        57.6 ns/op	8882.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 2000000	        57.0 ns/op	8980.50 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        56.4 ns/op	9071.81 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        56.0 ns/op	9135.04 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 2000000	        58.8 ns/op	8705.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 2000000	        56.2 ns/op	9115.68 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        57.3 ns/op	8941.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        56.3 ns/op	9090.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	 3000000	        57.8 ns/op	8854.75 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        92.6 ns/op	11058.32 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        93.8 ns/op	10913.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        93.5 ns/op	10953.07 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        95.0 ns/op	10778.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        94.8 ns/op	10799.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        95.3 ns/op	10741.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        92.6 ns/op	11055.29 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 1000000	       100 ns/op	10189.63 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 2000000	        95.3 ns/op	10747.01 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	 1000000	       102 ns/op	9978.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 1000000	       103 ns/op	9907.74 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        92.8 ns/op	11036.21 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        92.8 ns/op	11031.01 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 1000000	       102 ns/op	10006.87 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        93.1 ns/op	11000.89 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        92.8 ns/op	11029.36 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        95.3 ns/op	10743.40 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        93.6 ns/op	10941.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        93.3 ns/op	10979.13 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	 2000000	        92.6 ns/op	11053.13 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       302 ns/op	13561.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       294 ns/op	13906.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       298 ns/op	13734.81 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       296 ns/op	13826.62 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       301 ns/op	13598.75 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       299 ns/op	13676.26 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       299 ns/op	13686.88 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       289 ns/op	14143.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       296 ns/op	13824.99 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  500000	       298 ns/op	13716.11 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       295 ns/op	13878.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       302 ns/op	13531.91 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       295 ns/op	13868.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       293 ns/op	13944.64 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       300 ns/op	13620.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       296 ns/op	13820.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       305 ns/op	13418.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       293 ns/op	13960.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       303 ns/op	13506.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  500000	       309 ns/op	13218.83 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2149 ns/op	15241.57 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   50000	      2230 ns/op	14693.09 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2183 ns/op	15005.52 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2115 ns/op	15486.09 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2227 ns/op	14708.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   50000	      2140 ns/op	15308.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2157 ns/op	15188.25 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   50000	      2133 ns/op	15359.48 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2117 ns/op	15475.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	  100000	      2129 ns/op	15385.26 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2233 ns/op	14673.10 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2244 ns/op	14596.46 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   50000	      2154 ns/op	15211.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2156 ns/op	15196.79 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   50000	      2159 ns/op	15175.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2151 ns/op	15228.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2169 ns/op	15105.80 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2206 ns/op	14850.25 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	  100000	      2145 ns/op	15271.77 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   50000	      2166 ns/op	15126.92 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.1 ns/op	 932.96 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.4 ns/op	 912.82 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.2 ns/op	 924.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.1 ns/op	 934.22 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.2 ns/op	 924.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.6 ns/op	 904.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.5 ns/op	 910.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        17.6 ns/op	 853.00 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.4 ns/op	 915.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.2 ns/op	 923.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.2 ns/op	 871.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.5 ns/op	 854.97 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.3 ns/op	 864.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        16.9 ns/op	 885.36 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.4 ns/op	 862.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        16.9 ns/op	 887.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.0 ns/op	 879.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.7 ns/op	 847.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.6 ns/op	 854.26 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.4 ns/op	 864.10 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.5 ns/op	2279.37 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.1 ns/op	2334.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.9 ns/op	2235.38 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.1 ns/op	2338.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.2 ns/op	2325.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.8 ns/op	2251.24 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.8 ns/op	2242.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        18.2 ns/op	2199.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.4 ns/op	2305.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.3 ns/op	2315.62 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.5 ns/op	2055.96 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.7 ns/op	2034.99 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.3 ns/op	2068.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.8 ns/op	2021.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.4 ns/op	2060.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.3 ns/op	2076.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.1 ns/op	2091.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.0 ns/op	2100.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.5 ns/op	2049.71 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.3 ns/op	2074.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.7 ns/op	12891.27 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.1 ns/op	12777.24 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        41.7 ns/op	12266.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.8 ns/op	12866.81 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.8 ns/op	12862.14 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.8 ns/op	12537.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.3 ns/op	13022.34 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.9 ns/op	12817.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.8 ns/op	12543.27 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.4 ns/op	12993.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.7 ns/op	12276.08 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.0 ns/op	12199.95 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.2 ns/op	12121.96 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.9 ns/op	12215.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        43.2 ns/op	11854.68 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.1 ns/op	12165.99 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.5 ns/op	12328.95 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.9 ns/op	12206.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.6 ns/op	12306.14 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.6 ns/op	12022.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.4 ns/op	15646.46 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.9 ns/op	15531.97 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.4 ns/op	15422.12 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.7 ns/op	15358.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        72.1 ns/op	14207.76 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.3 ns/op	15455.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.2 ns/op	15479.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        68.6 ns/op	14926.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.3 ns/op	15436.78 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.1 ns/op	15481.91 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        68.6 ns/op	14928.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        67.2 ns/op	15241.88 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        68.3 ns/op	14985.73 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        68.5 ns/op	14958.31 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        69.2 ns/op	14806.15 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        68.4 ns/op	14977.84 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        69.1 ns/op	14822.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        67.5 ns/op	15171.65 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        70.7 ns/op	14489.26 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        69.4 ns/op	14744.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       157 ns/op	25978.03 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26173.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       160 ns/op	25471.67 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26190.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       164 ns/op	24861.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       157 ns/op	26018.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26101.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       163 ns/op	24990.34 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       162 ns/op	25138.27 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       157 ns/op	25972.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       164 ns/op	24908.40 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       160 ns/op	25529.63 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       167 ns/op	24412.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       162 ns/op	25206.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       158 ns/op	25827.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       160 ns/op	25519.93 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       163 ns/op	25090.11 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       159 ns/op	25657.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       160 ns/op	25576.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       163 ns/op	25007.68 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1233 ns/op	26561.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1223 ns/op	26786.22 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1193 ns/op	27451.16 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1288 ns/op	25436.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1212 ns/op	27022.56 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1245 ns/op	26314.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1208 ns/op	27105.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1200 ns/op	27296.77 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1226 ns/op	26714.57 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  200000	      1189 ns/op	27542.78 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1235 ns/op	26530.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1193 ns/op	27444.08 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1272 ns/op	25752.85 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1210 ns/op	27080.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1207 ns/op	27142.02 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1245 ns/op	26305.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1226 ns/op	26710.70 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1223 ns/op	26787.03 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1217 ns/op	26921.93 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1180 ns/op	27746.71 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.6 ns/op	 421.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.2 ns/op	 425.84 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.1 ns/op	 415.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.2 ns/op	 426.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.6 ns/op	 420.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.6 ns/op	 410.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.1 ns/op	 427.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.8 ns/op	 419.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.6 ns/op	 421.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        35.2 ns/op	 425.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.1 ns/op	 427.06 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.7 ns/op	 420.07 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        35.2 ns/op	 425.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.4 ns/op	 423.84 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.4 ns/op	 423.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        37.4 ns/op	 400.57 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.7 ns/op	 419.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.6 ns/op	 421.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.5 ns/op	 422.80 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        36.0 ns/op	 417.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        89.8 ns/op	 445.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        89.1 ns/op	 448.86 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.6 ns/op	 456.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        86.7 ns/op	 461.44 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        86.6 ns/op	 462.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        88.0 ns/op	 454.58 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.2 ns/op	 458.73 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.5 ns/op	 457.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        86.4 ns/op	 462.92 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.6 ns/op	 456.63 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.2 ns/op	 458.58 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.0 ns/op	 459.82 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        89.1 ns/op	 449.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        86.5 ns/op	 462.62 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        88.8 ns/op	 450.43 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.1 ns/op	 459.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.8 ns/op	 455.54 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.5 ns/op	 457.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        90.9 ns/op	 440.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        88.4 ns/op	 452.59 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1100 ns/op	 465.26 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1072 ns/op	 477.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1075 ns/op	 475.90 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1056 ns/op	 484.71 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1113 ns/op	 459.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1054 ns/op	 485.69 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1066 ns/op	 480.13 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1074 ns/op	 476.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1057 ns/op	 483.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1092 ns/op	 468.52 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1074 ns/op	 476.50 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1100 ns/op	 465.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1106 ns/op	 462.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1226 ns/op	 417.43 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1189 ns/op	 430.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1176 ns/op	 435.29 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1235 ns/op	 414.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1213 ns/op	 422.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1210 ns/op	 422.92 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1137 ns/op	 450.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2259 ns/op	 453.12 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2322 ns/op	 441.00 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2350 ns/op	 435.62 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2355 ns/op	 434.74 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      2291 ns/op	 446.86 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2343 ns/op	 436.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2416 ns/op	 423.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2410 ns/op	 424.86 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2256 ns/op	 453.73 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2405 ns/op	 425.75 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      2472 ns/op	 414.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2433 ns/op	 420.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      2390 ns/op	 428.34 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2368 ns/op	 432.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2294 ns/op	 446.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2334 ns/op	 438.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2298 ns/op	 445.50 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2374 ns/op	 431.17 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2354 ns/op	 434.95 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2284 ns/op	 448.24 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8799 ns/op	 465.49 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9346 ns/op	 438.26 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9129 ns/op	 448.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8710 ns/op	 470.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8699 ns/op	 470.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8704 ns/op	 470.58 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9563 ns/op	 428.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9173 ns/op	 446.50 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9286 ns/op	 441.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8623 ns/op	 475.00 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8410 ns/op	 487.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8847 ns/op	 462.96 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8430 ns/op	 485.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8505 ns/op	 481.58 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8426 ns/op	 486.11 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	     10107 ns/op	 405.24 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9125 ns/op	 448.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9740 ns/op	 420.50 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9564 ns/op	 428.23 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9309 ns/op	 439.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     69825 ns/op	 469.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     74409 ns/op	 440.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     75041 ns/op	 436.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     72268 ns/op	 453.42 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     73333 ns/op	 446.84 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     70923 ns/op	 462.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     70095 ns/op	 467.48 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     76125 ns/op	 430.45 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     73908 ns/op	 443.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     73078 ns/op	 448.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     76238 ns/op	 429.81 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     74141 ns/op	 441.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     71910 ns/op	 455.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     76684 ns/op	 427.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     75951 ns/op	 431.43 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     73299 ns/op	 447.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     76288 ns/op	 429.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     73453 ns/op	 446.10 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     72748 ns/op	 450.43 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     72097 ns/op	 454.50 MB/s
+PASS
+ok  	hash/crc32	72.655s
diff --git a/cmd/benchstat/testdata/new4.golden b/cmd/benchstat/testdata/new4.golden
new file mode 100644
index 0000000..a1eb317
--- /dev/null
+++ b/cmd/benchstat/testdata/new4.golden
@@ -0,0 +1,27 @@
+name                                      old time/op    new time/op    delta
+CRC32/poly=IEEE/size=40/align=0-8           42.5ns ± 6%    42.1ns ± 3%      ~     (p=0.642 n=10+10)
+CRC32/poly=IEEE/size=40/align=1-8           42.0ns ± 3%    41.7ns ± 5%      ~     (p=0.148 n=10+10)
+CRC32/poly=IEEE/size=4kB/align=0-8           298ns ± 1%    1682ns ± 2%  +464.22%  (p=0.000 n=9+9)
+CRC32/poly=IEEE/size=4kB/align=1-8           299ns ± 3%    1690ns ± 4%  +464.96%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=0-8     17.5ns ± 4%    18.6ns ±11%    +5.99%  (p=0.049 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8     19.4ns ± 2%    19.6ns ± 2%      ~     (p=0.072 n=10+8)
+CRC32/poly=Castagnoli/size=4kB/align=0-8     159ns ± 3%     161ns ± 8%      ~     (p=0.421 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8     162ns ± 3%     170ns ± 8%    +4.95%  (p=0.019 n=10+10)
+CRC32/poly=Koopman/size=40/align=0-8        87.6ns ± 2%    93.8ns ±13%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8        88.0ns ± 3%    86.9ns ± 3%    -1.33%  (p=0.050 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=0-8       9.00µs ± 6%    9.08µs ± 8%      ~     (p=0.631 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8       9.05µs ±12%    9.46µs ± 8%      ~     (p=0.123 n=10+10)
+
+name                                      old speed      new speed      delta
+CRC32/poly=IEEE/size=40/align=0-8          942MB/s ± 5%   951MB/s ± 3%      ~     (p=0.684 n=10+10)
+CRC32/poly=IEEE/size=40/align=1-8          952MB/s ± 3%   960MB/s ± 4%      ~     (p=0.143 n=10+10)
+CRC32/poly=IEEE/size=4kB/align=0-8        13.7GB/s ± 1%   2.4GB/s ± 2%   -82.26%  (p=0.000 n=9+9)
+CRC32/poly=IEEE/size=4kB/align=1-8        13.7GB/s ± 3%   2.4GB/s ± 4%   -82.28%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=0-8   2.28GB/s ± 4%  2.16GB/s ±11%      ~     (p=0.052 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8   2.06GB/s ± 2%  2.04GB/s ± 2%      ~     (p=0.055 n=10+8)
+CRC32/poly=Castagnoli/size=4kB/align=0-8  25.7GB/s ± 3%  25.4GB/s ± 7%      ~     (p=0.529 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8  25.3GB/s ± 3%  24.1GB/s ± 8%    -4.55%  (p=0.015 n=10+10)
+CRC32/poly=Koopman/size=40/align=0-8       456MB/s ± 2%   428MB/s ±12%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8       455MB/s ± 3%   461MB/s ± 3%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=0-8      455MB/s ± 6%   452MB/s ± 8%      ~     (p=0.631 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8      455MB/s ±11%   434MB/s ± 9%      ~     (p=0.123 n=10+10)
diff --git a/cmd/benchstat/testdata/old.txt b/cmd/benchstat/testdata/old.txt
new file mode 100644
index 0000000..cd1b57e
--- /dev/null
+++ b/cmd/benchstat/testdata/old.txt
@@ -0,0 +1,367 @@
+pkg: hash/crc32
+goarch: amd64
+goos: darwin
+note: hw acceleration disabled
+
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        44.6 ns/op	 336.59 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        47.3 ns/op	 317.29 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        44.6 ns/op	 336.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        46.3 ns/op	 323.80 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        50.7 ns/op	 295.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        45.8 ns/op	 327.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        46.8 ns/op	 320.56 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        44.3 ns/op	 338.48 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        47.7 ns/op	 314.52 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 3000000	        50.6 ns/op	 296.42 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        46.8 ns/op	 320.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.0 ns/op	 340.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.6 ns/op	 336.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.1 ns/op	 340.42 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.5 ns/op	 336.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.0 ns/op	 340.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.2 ns/op	 339.16 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        45.1 ns/op	 332.85 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        44.0 ns/op	 340.71 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 3000000	        45.8 ns/op	 327.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.0 ns/op	 975.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        43.0 ns/op	 930.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        40.9 ns/op	 978.39 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.3 ns/op	 944.76 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.0 ns/op	 976.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.0 ns/op	 975.15 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.3 ns/op	 967.88 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        40.8 ns/op	 979.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.1 ns/op	 974.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.2 ns/op	 969.78 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.9 ns/op	 931.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.9 ns/op	 977.34 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.4 ns/op	 965.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.2 ns/op	 971.79 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.1 ns/op	 972.53 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.8 ns/op	 979.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.9 ns/op	 978.70 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.9 ns/op	 978.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.5 ns/op	 964.07 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.0 ns/op	 974.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       249 ns/op	2051.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       248 ns/op	2058.43 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       232 ns/op	2202.80 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       238 ns/op	2145.40 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       234 ns/op	2181.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       237 ns/op	2151.78 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       241 ns/op	2117.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       231 ns/op	2213.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       231 ns/op	2207.52 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       239 ns/op	2139.64 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       238 ns/op	2143.57 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       232 ns/op	2205.23 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       230 ns/op	2220.72 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       233 ns/op	2192.30 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       231 ns/op	2215.20 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       238 ns/op	2143.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       242 ns/op	2108.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       241 ns/op	2117.57 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       230 ns/op	2220.54 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       240 ns/op	2125.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       435 ns/op	2352.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       461 ns/op	2218.18 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       446 ns/op	2291.09 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       448 ns/op	2284.64 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       448 ns/op	2282.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       464 ns/op	2206.86 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       456 ns/op	2242.96 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       457 ns/op	2239.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       461 ns/op	2219.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  300000	       449 ns/op	2278.55 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       436 ns/op	2343.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       452 ns/op	2263.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       443 ns/op	2310.35 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       446 ns/op	2292.48 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       436 ns/op	2346.76 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       445 ns/op	2296.07 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       451 ns/op	2268.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       450 ns/op	2274.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       441 ns/op	2320.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  300000	       436 ns/op	2346.69 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1698 ns/op	2411.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1667 ns/op	2456.00 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1694 ns/op	2416.70 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1654 ns/op	2476.16 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1704 ns/op	2402.42 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1876 ns/op	2182.35 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1790 ns/op	2287.20 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1812 ns/op	2259.59 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1828 ns/op	2239.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1677 ns/op	2441.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1679 ns/op	2438.77 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1705 ns/op	2401.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1665 ns/op	2459.27 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1678 ns/op	2440.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1819 ns/op	2251.46 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1871 ns/op	2188.25 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1878 ns/op	2180.70 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1782 ns/op	2297.30 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1797 ns/op	2278.59 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1769 ns/op	2315.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     14964 ns/op	2189.65 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     14612 ns/op	2242.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     14258 ns/op	2298.15 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     15641 ns/op	2094.94 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     14653 ns/op	2236.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     15101 ns/op	2169.79 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     15065 ns/op	2174.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     15801 ns/op	2073.78 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     15459 ns/op	2119.55 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     13975 ns/op	2344.74 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     13567 ns/op	2415.11 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     14515 ns/op	2257.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     14510 ns/op	2258.21 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     15133 ns/op	2165.26 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     14383 ns/op	2278.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     14983 ns/op	2186.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     13519 ns/op	2423.74 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     13154 ns/op	2491.10 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     13594 ns/op	2410.43 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     14530 ns/op	2255.12 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        18.0 ns/op	 834.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.4 ns/op	 913.19 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.6 ns/op	 903.85 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.3 ns/op	 920.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.0 ns/op	 937.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.6 ns/op	 903.12 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.0 ns/op	 934.62 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.6 ns/op	 903.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.1 ns/op	 930.77 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	10000000	        16.8 ns/op	 895.10 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.0 ns/op	 884.78 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.5 ns/op	 855.00 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.1 ns/op	 874.74 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.5 ns/op	 857.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.2 ns/op	 869.69 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.0 ns/op	 883.09 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.1 ns/op	 877.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.2 ns/op	 869.59 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        18.6 ns/op	 807.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	10000000	        17.4 ns/op	 861.10 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.3 ns/op	2317.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.6 ns/op	2273.98 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.5 ns/op	2280.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.2 ns/op	2322.88 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.7 ns/op	2257.80 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.5 ns/op	2290.51 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.2 ns/op	2319.50 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.2 ns/op	2329.20 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.4 ns/op	2300.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.7 ns/op	2262.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        20.3 ns/op	1966.20 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.3 ns/op	2077.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.1 ns/op	2094.95 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.8 ns/op	2022.06 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.9 ns/op	2009.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.6 ns/op	2037.74 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        20.1 ns/op	1987.93 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.5 ns/op	2050.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.8 ns/op	2024.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.7 ns/op	2031.46 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.4 ns/op	12662.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.7 ns/op	12889.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.3 ns/op	12706.28 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.0 ns/op	12814.70 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.1 ns/op	12758.84 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.7 ns/op	12894.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.8 ns/op	12535.17 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.8 ns/op	12542.40 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        40.2 ns/op	12750.46 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	 3000000	        39.7 ns/op	12882.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.9 ns/op	12212.50 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.9 ns/op	12206.11 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        43.1 ns/op	11869.61 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.8 ns/op	11949.04 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        43.3 ns/op	11823.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        42.0 ns/op	12196.38 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.5 ns/op	12325.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.8 ns/op	12236.96 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.5 ns/op	12326.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	 3000000	        41.6 ns/op	12298.60 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.4 ns/op	15659.97 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.5 ns/op	15623.63 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.2 ns/op	15711.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.5 ns/op	15640.74 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.3 ns/op	15687.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        66.0 ns/op	15509.02 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.3 ns/op	15684.59 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        70.2 ns/op	14584.88 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.7 ns/op	15582.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	 2000000	        65.6 ns/op	15619.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        67.6 ns/op	15140.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        68.1 ns/op	15039.19 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        67.5 ns/op	15180.69 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        67.6 ns/op	15146.80 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        73.1 ns/op	14015.81 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        70.7 ns/op	14493.63 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        74.1 ns/op	13820.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        71.8 ns/op	14256.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        70.9 ns/op	14451.65 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	 2000000	        69.5 ns/op	14727.15 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       162 ns/op	25174.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       162 ns/op	25194.50 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       167 ns/op	24422.65 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       160 ns/op	25541.37 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       161 ns/op	25354.03 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       171 ns/op	23871.09 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       162 ns/op	25224.84 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       158 ns/op	25798.19 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       158 ns/op	25815.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       167 ns/op	24465.11 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       168 ns/op	24282.26 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       177 ns/op	23065.76 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       176 ns/op	23245.80 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       170 ns/op	24015.77 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       173 ns/op	23579.34 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       174 ns/op	23531.14 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       169 ns/op	24107.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       166 ns/op	24657.46 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       162 ns/op	25273.53 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       159 ns/op	25619.67 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1234 ns/op	26534.55 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1210 ns/op	27063.60 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1241 ns/op	26391.50 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1230 ns/op	26634.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1190 ns/op	27515.61 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1183 ns/op	27695.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1271 ns/op	25771.02 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1205 ns/op	27170.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1337 ns/op	24493.55 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	  100000	      1200 ns/op	27299.92 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1263 ns/op	25937.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1274 ns/op	25702.13 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1278 ns/op	25639.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1271 ns/op	25763.65 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1235 ns/op	26515.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1232 ns/op	26586.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1341 ns/op	24430.71 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1257 ns/op	26056.28 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1264 ns/op	25910.24 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	  100000	      1309 ns/op	25023.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.5 ns/op	 410.82 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        37.3 ns/op	 402.07 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.7 ns/op	 408.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        34.8 ns/op	 430.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        40.4 ns/op	 371.74 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        38.6 ns/op	 388.62 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.3 ns/op	 413.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        34.0 ns/op	 441.26 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        34.3 ns/op	 437.06 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 5000000	        36.2 ns/op	 414.34 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        34.4 ns/op	 435.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        37.0 ns/op	 405.81 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.8 ns/op	 419.55 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        36.5 ns/op	 410.66 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        35.2 ns/op	 425.85 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        34.4 ns/op	 436.09 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        34.0 ns/op	 441.70 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        33.9 ns/op	 443.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        33.9 ns/op	 443.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 5000000	        36.4 ns/op	 412.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        89.7 ns/op	 445.75 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        90.4 ns/op	 442.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        94.9 ns/op	 421.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.4 ns/op	 457.45 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        89.3 ns/op	 448.11 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        90.3 ns/op	 443.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.9 ns/op	 455.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        93.7 ns/op	 426.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	       100 ns/op	 396.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        92.8 ns/op	 430.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.9 ns/op	 455.30 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        90.9 ns/op	 439.90 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        93.5 ns/op	 427.91 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        93.7 ns/op	 426.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        95.0 ns/op	 421.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        90.1 ns/op	 443.95 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        95.3 ns/op	 419.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        85.6 ns/op	 467.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        86.9 ns/op	 460.19 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        91.9 ns/op	 435.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1118 ns/op	 457.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1168 ns/op	 438.12 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1132 ns/op	 452.06 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1079 ns/op	 474.47 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1079 ns/op	 474.46 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1126 ns/op	 454.69 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1132 ns/op	 452.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1193 ns/op	 429.16 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1124 ns/op	 455.38 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  200000	      1166 ns/op	 438.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1096 ns/op	 466.92 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1117 ns/op	 458.09 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1200 ns/op	 426.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1109 ns/op	 461.41 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1155 ns/op	 443.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1141 ns/op	 448.59 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1136 ns/op	 450.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1145 ns/op	 446.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  200000	      1085 ns/op	 471.86 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1084 ns/op	 471.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2308 ns/op	 443.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2480 ns/op	 412.88 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2288 ns/op	 447.44 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2371 ns/op	 431.88 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2247 ns/op	 455.55 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2211 ns/op	 462.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2264 ns/op	 452.17 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2231 ns/op	 458.82 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2161 ns/op	 473.71 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	  100000	      2109 ns/op	 485.48 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2160 ns/op	 473.90 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2103 ns/op	 486.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2189 ns/op	 467.75 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2159 ns/op	 474.21 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2144 ns/op	 477.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2169 ns/op	 472.09 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2123 ns/op	 482.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      2150 ns/op	 476.26 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2141 ns/op	 478.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	  100000	      2238 ns/op	 457.51 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8562 ns/op	 478.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8584 ns/op	 477.16 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9176 ns/op	 446.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9096 ns/op	 450.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9337 ns/op	 438.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9545 ns/op	 429.11 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9287 ns/op	 441.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8963 ns/op	 456.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8970 ns/op	 456.61 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8795 ns/op	 465.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9179 ns/op	 446.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9026 ns/op	 453.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8505 ns/op	 481.60 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8396 ns/op	 487.85 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9818 ns/op	 417.17 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8652 ns/op	 473.38 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8689 ns/op	 471.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8345 ns/op	 490.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9391 ns/op	 436.13 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9401 ns/op	 435.66 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     74664 ns/op	 438.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     72859 ns/op	 449.74 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     73403 ns/op	 446.41 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     73646 ns/op	 444.94 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     76501 ns/op	 428.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     78648 ns/op	 416.64 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     69550 ns/op	 471.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     67848 ns/op	 482.96 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     67984 ns/op	 482.00 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	     69177 ns/op	 473.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     70108 ns/op	 467.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     67566 ns/op	 484.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     71256 ns/op	 459.86 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     69979 ns/op	 468.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     69972 ns/op	 468.30 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     68356 ns/op	 479.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     69631 ns/op	 470.59 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     70087 ns/op	 467.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     75510 ns/op	 433.95 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	     76970 ns/op	 425.72 MB/s
+PASS
+ok  	hash/crc32	68.427s
diff --git a/cmd/benchstat/testdata/oldnew.golden b/cmd/benchstat/testdata/oldnew.golden
new file mode 100644
index 0000000..c754683
--- /dev/null
+++ b/cmd/benchstat/testdata/oldnew.golden
@@ -0,0 +1,75 @@
+name                                       old time/op    new time/op     delta
+CRC32/poly=IEEE/size=15/align=0-8            46.9ns ± 8%     44.5ns ± 3%    -5.01%  (p=0.008 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8            44.7ns ± 5%     44.5ns ± 4%      ~     (p=0.539 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8            41.0ns ± 1%     42.5ns ± 6%    +3.56%  (p=0.000 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8            41.1ns ± 1%     42.0ns ± 3%    +2.34%  (p=0.000 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8            238ns ± 5%       57ns ± 3%   -76.00%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8            236ns ± 3%       57ns ± 3%   -75.72%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8            452ns ± 4%       94ns ± 2%   -79.20%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8            444ns ± 2%       93ns ± 2%   -78.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8           1.74µs ± 8%     0.30µs ± 1%   -82.87%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8           1.76µs ± 6%     0.30µs ± 3%   -83.05%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8          15.0µs ± 7%      2.2µs ± 3%   -85.57%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8          14.2µs ± 7%      2.2µs ± 3%   -84.65%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8      16.4ns ± 3%     16.3ns ± 2%      ~     (p=0.615 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8      17.2ns ± 2%     17.3ns ± 2%      ~     (p=0.650 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8      17.4ns ± 2%     17.5ns ± 4%      ~     (p=0.694 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8      19.7ns ± 3%     19.4ns ± 2%    -1.62%  (p=0.036 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8     40.2ns ± 2%     40.1ns ± 4%      ~     (p=0.614 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8     42.1ns ± 3%     41.9ns ± 2%      ~     (p=0.952 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8     65.5ns ± 1%     66.2ns ± 1%    +1.01%  (p=0.003 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8     70.1ns ± 6%     68.5ns ± 2%      ~     (p=0.190 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8      163ns ± 5%      159ns ± 3%    -2.46%  (p=0.032 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8      169ns ± 6%      162ns ± 3%    -4.60%  (p=0.005 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8    1.22µs ± 4%     1.21µs ± 3%      ~     (p=0.882 n=9+9)
+CRC32/poly=Castagnoli/size=32kB/align=1-8    1.26µs ± 3%     1.22µs ± 4%    -3.48%  (p=0.002 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8         36.5ns ±11%     35.6ns ± 3%      ~     (p=0.216 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8         35.1ns ± 5%     35.5ns ± 1%      ~     (p=0.508 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8         91.6ns ± 9%     87.6ns ± 2%    -4.35%  (p=0.002 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8         91.1ns ± 6%     88.0ns ± 3%      ~     (p=0.055 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8        1.13µs ± 5%     1.08µs ± 3%    -4.93%  (p=0.000 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8        1.13µs ± 6%     1.17µs ± 8%      ~     (p=0.143 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8        2.24µs ± 6%     2.34µs ± 4%    +4.34%  (p=0.010 n=9+10)
+CRC32/poly=Koopman/size=1kB/align=1-8        2.15µs ± 2%     2.36µs ± 5%    +9.84%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8        9.03µs ± 6%     9.00µs ± 6%      ~     (p=0.971 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8        8.94µs ±10%     9.05µs ±12%      ~     (p=0.754 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8       72.4µs ± 9%     72.9µs ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8       69.6µs ± 3%     74.3µs ± 3%    +6.70%  (p=0.000 n=8+10)
+
+name                                       old speed      new speed       delta
+CRC32/poly=IEEE/size=15/align=0-8           321MB/s ± 8%    337MB/s ± 3%    +5.06%  (p=0.009 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8           336MB/s ± 4%    337MB/s ± 4%      ~     (p=0.579 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8           975MB/s ± 1%    942MB/s ± 5%    -3.37%  (p=0.001 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8           974MB/s ± 1%    952MB/s ± 3%    -2.25%  (p=0.000 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8         2.15GB/s ± 4%   8.97GB/s ± 3%  +317.65%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8         2.17GB/s ± 3%   8.96GB/s ± 3%  +312.89%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8         2.26GB/s ± 4%  10.88GB/s ± 2%  +381.12%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8         2.31GB/s ± 2%  10.98GB/s ± 2%  +375.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8         2.36GB/s ± 7%  13.73GB/s ± 1%  +482.26%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8         2.33GB/s ± 6%  13.68GB/s ± 3%  +488.23%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8        2.19GB/s ± 7%  15.19GB/s ± 3%  +591.99%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8        2.31GB/s ± 8%  15.04GB/s ± 3%  +550.07%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8     916MB/s ± 2%    920MB/s ± 2%      ~     (p=0.489 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8     870MB/s ± 2%    867MB/s ± 2%      ~     (p=0.661 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8    2.30GB/s ± 2%   2.28GB/s ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8    2.03GB/s ± 3%   2.06GB/s ± 2%      ~     (p=0.063 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8   12.7GB/s ± 2%   12.8GB/s ± 4%      ~     (p=0.529 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8   12.1GB/s ± 3%   12.2GB/s ± 1%      ~     (p=0.780 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8   15.6GB/s ± 1%   15.5GB/s ± 1%    -1.02%  (p=0.002 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8   14.6GB/s ± 6%   15.0GB/s ± 2%      ~     (p=0.211 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8   25.1GB/s ± 5%   25.7GB/s ± 3%      ~     (p=0.052 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8   24.1GB/s ± 6%   25.3GB/s ± 3%    +4.71%  (p=0.005 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8  26.9GB/s ± 4%   26.8GB/s ± 5%      ~     (p=0.842 n=9+10)
+CRC32/poly=Castagnoli/size=32kB/align=1-8  25.9GB/s ± 3%   26.8GB/s ± 4%    +3.62%  (p=0.002 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8        412MB/s ±10%    421MB/s ± 3%      ~     (p=0.218 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8        427MB/s ± 5%    422MB/s ± 1%      ~     (p=0.497 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8        437MB/s ± 9%    456MB/s ± 2%    +4.50%  (p=0.002 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8        440MB/s ± 6%    455MB/s ± 3%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8       453MB/s ± 5%    476MB/s ± 3%    +5.09%  (p=0.000 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8       455MB/s ± 6%    440MB/s ± 8%      ~     (p=0.143 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8       452MB/s ± 9%    438MB/s ± 4%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=1-8       477MB/s ± 2%    434MB/s ± 5%    -8.92%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8       454MB/s ± 5%    455MB/s ± 6%      ~     (p=0.971 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8       459MB/s ± 9%    455MB/s ±11%      ~     (p=0.739 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8      453MB/s ± 8%    450MB/s ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8      471MB/s ± 3%    441MB/s ± 3%    -6.25%  (p=0.000 n=8+10)
diff --git a/cmd/benchstat/testdata/oldnew4html.golden b/cmd/benchstat/testdata/oldnew4html.golden
new file mode 100644
index 0000000..85cb796
--- /dev/null
+++ b/cmd/benchstat/testdata/oldnew4html.golden
@@ -0,0 +1,81 @@
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name \ time/op</th><th>old.txt</th><th>new.txt</th><th>slashslash4.txt</th>
+<tr><td>CRC32/poly=IEEE/size=15/align=0-8</td><td>46.9ns ± 8%</td><td>44.5ns ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=15/align=1-8</td><td>44.7ns ± 5%</td><td>44.5ns ± 4%</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=0-8</td><td>41.0ns ± 1%</td><td>42.5ns ± 6%</td><td>42.1ns ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=1-8</td><td>41.1ns ± 1%</td><td>42.0ns ± 3%</td><td>41.7ns ± 5%</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=0-8</td><td>238ns ± 5%</td><td>57ns ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=1-8</td><td>236ns ± 3%</td><td>57ns ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=0-8</td><td>452ns ± 4%</td><td>94ns ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=1-8</td><td>444ns ± 2%</td><td>93ns ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=0-8</td><td>1.74µs ± 8%</td><td>0.30µs ± 1%</td><td>1.68µs ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=1-8</td><td>1.76µs ± 6%</td><td>0.30µs ± 3%</td><td>1.69µs ± 4%</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=0-8</td><td>15.0µs ± 7%</td><td>2.2µs ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=1-8</td><td>14.2µs ± 7%</td><td>2.2µs ± 3%</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=0-8</td><td>16.4ns ± 3%</td><td>16.3ns ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=1-8</td><td>17.2ns ± 2%</td><td>17.3ns ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=0-8</td><td>17.4ns ± 2%</td><td>17.5ns ± 4%</td><td>18.6ns ±11%</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=1-8</td><td>19.7ns ± 3%</td><td>19.4ns ± 2%</td><td>19.6ns ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=0-8</td><td>40.2ns ± 2%</td><td>40.1ns ± 4%</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=1-8</td><td>42.1ns ± 3%</td><td>41.9ns ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=0-8</td><td>65.5ns ± 1%</td><td>66.2ns ± 1%</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=1-8</td><td>70.1ns ± 6%</td><td>68.5ns ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=0-8</td><td>163ns ± 5%</td><td>159ns ± 3%</td><td>161ns ± 8%</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=1-8</td><td>169ns ± 6%</td><td>162ns ± 3%</td><td>170ns ± 8%</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=0-8</td><td>1.22µs ± 4%</td><td>1.21µs ± 3%</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=1-8</td><td>1.26µs ± 3%</td><td>1.22µs ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=0-8</td><td>36.5ns ±11%</td><td>35.6ns ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=1-8</td><td>35.1ns ± 5%</td><td>35.5ns ± 1%</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=0-8</td><td>91.6ns ± 9%</td><td>87.6ns ± 2%</td><td>93.8ns ±13%</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=1-8</td><td>91.1ns ± 6%</td><td>88.0ns ± 3%</td><td>86.9ns ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=0-8</td><td>1.13µs ± 5%</td><td>1.08µs ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=1-8</td><td>1.13µs ± 6%</td><td>1.17µs ± 8%</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=0-8</td><td>2.24µs ± 6%</td><td>2.34µs ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=1-8</td><td>2.15µs ± 2%</td><td>2.36µs ± 5%</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=0-8</td><td>9.03µs ± 6%</td><td>9.00µs ± 6%</td><td>9.08µs ± 8%</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=1-8</td><td>8.94µs ±10%</td><td>9.05µs ±12%</td><td>9.46µs ± 8%</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=0-8</td><td>72.4µs ± 9%</td><td>72.9µs ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=1-8</td><td>69.6µs ± 3%</td><td>74.3µs ± 3%</td>
+</table>
+
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name \ speed</th><th>old.txt</th><th>new.txt</th><th>slashslash4.txt</th>
+<tr><td>CRC32/poly=IEEE/size=15/align=0-8</td><td>321MB/s ± 8%</td><td>337MB/s ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=15/align=1-8</td><td>336MB/s ± 4%</td><td>337MB/s ± 4%</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=0-8</td><td>975MB/s ± 1%</td><td>942MB/s ± 5%</td><td>951MB/s ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=1-8</td><td>974MB/s ± 1%</td><td>952MB/s ± 3%</td><td>960MB/s ± 4%</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=0-8</td><td>2.15GB/s ± 4%</td><td>8.97GB/s ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=1-8</td><td>2.17GB/s ± 3%</td><td>8.96GB/s ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=0-8</td><td>2.26GB/s ± 4%</td><td>10.88GB/s ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=1-8</td><td>2.31GB/s ± 2%</td><td>10.98GB/s ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=0-8</td><td>2.36GB/s ± 7%</td><td>13.73GB/s ± 1%</td><td>2.43GB/s ± 2%</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=1-8</td><td>2.33GB/s ± 6%</td><td>13.68GB/s ± 3%</td><td>2.42GB/s ± 4%</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=0-8</td><td>2.19GB/s ± 7%</td><td>15.19GB/s ± 3%</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=1-8</td><td>2.31GB/s ± 8%</td><td>15.04GB/s ± 3%</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=0-8</td><td>916MB/s ± 2%</td><td>920MB/s ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=1-8</td><td>870MB/s ± 2%</td><td>867MB/s ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=0-8</td><td>2.30GB/s ± 2%</td><td>2.28GB/s ± 4%</td><td>2.16GB/s ±11%</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=1-8</td><td>2.03GB/s ± 3%</td><td>2.06GB/s ± 2%</td><td>2.04GB/s ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=0-8</td><td>12.7GB/s ± 2%</td><td>12.8GB/s ± 4%</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=1-8</td><td>12.1GB/s ± 3%</td><td>12.2GB/s ± 1%</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=0-8</td><td>15.6GB/s ± 1%</td><td>15.5GB/s ± 1%</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=1-8</td><td>14.6GB/s ± 6%</td><td>15.0GB/s ± 2%</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=0-8</td><td>25.1GB/s ± 5%</td><td>25.7GB/s ± 3%</td><td>25.4GB/s ± 7%</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=1-8</td><td>24.1GB/s ± 6%</td><td>25.3GB/s ± 3%</td><td>24.1GB/s ± 8%</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=0-8</td><td>26.9GB/s ± 4%</td><td>26.8GB/s ± 5%</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=1-8</td><td>25.9GB/s ± 3%</td><td>26.8GB/s ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=0-8</td><td>412MB/s ±10%</td><td>421MB/s ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=1-8</td><td>427MB/s ± 5%</td><td>422MB/s ± 1%</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=0-8</td><td>437MB/s ± 9%</td><td>456MB/s ± 2%</td><td>428MB/s ±12%</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=1-8</td><td>440MB/s ± 6%</td><td>455MB/s ± 3%</td><td>461MB/s ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=0-8</td><td>453MB/s ± 5%</td><td>476MB/s ± 3%</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=1-8</td><td>455MB/s ± 6%</td><td>440MB/s ± 8%</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=0-8</td><td>452MB/s ± 9%</td><td>438MB/s ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=1-8</td><td>477MB/s ± 2%</td><td>434MB/s ± 5%</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=0-8</td><td>454MB/s ± 5%</td><td>455MB/s ± 6%</td><td>452MB/s ± 8%</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=1-8</td><td>459MB/s ± 9%</td><td>455MB/s ±11%</td><td>434MB/s ± 9%</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=0-8</td><td>453MB/s ± 8%</td><td>450MB/s ± 4%</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=1-8</td><td>471MB/s ± 3%</td><td>441MB/s ± 3%</td>
+</table>
diff --git a/cmd/benchstat/testdata/oldnewgeo.golden b/cmd/benchstat/testdata/oldnewgeo.golden
new file mode 100644
index 0000000..c625f03
--- /dev/null
+++ b/cmd/benchstat/testdata/oldnewgeo.golden
@@ -0,0 +1,77 @@
+name                                       old time/op    new time/op     delta
+CRC32/poly=IEEE/size=15/align=0-8            46.9ns ± 8%     44.5ns ± 3%    -5.01%  (p=0.008 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8            44.7ns ± 5%     44.5ns ± 4%      ~     (p=0.539 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8            41.0ns ± 1%     42.5ns ± 6%    +3.56%  (p=0.000 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8            41.1ns ± 1%     42.0ns ± 3%    +2.34%  (p=0.000 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8            238ns ± 5%       57ns ± 3%   -76.00%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8            236ns ± 3%       57ns ± 3%   -75.72%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8            452ns ± 4%       94ns ± 2%   -79.20%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8            444ns ± 2%       93ns ± 2%   -78.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8           1.74µs ± 8%     0.30µs ± 1%   -82.87%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8           1.76µs ± 6%     0.30µs ± 3%   -83.05%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8          15.0µs ± 7%      2.2µs ± 3%   -85.57%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8          14.2µs ± 7%      2.2µs ± 3%   -84.65%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8      16.4ns ± 3%     16.3ns ± 2%      ~     (p=0.615 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8      17.2ns ± 2%     17.3ns ± 2%      ~     (p=0.650 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8      17.4ns ± 2%     17.5ns ± 4%      ~     (p=0.694 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8      19.7ns ± 3%     19.4ns ± 2%    -1.62%  (p=0.036 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8     40.2ns ± 2%     40.1ns ± 4%      ~     (p=0.614 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8     42.1ns ± 3%     41.9ns ± 2%      ~     (p=0.952 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8     65.5ns ± 1%     66.2ns ± 1%    +1.01%  (p=0.003 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8     70.1ns ± 6%     68.5ns ± 2%      ~     (p=0.190 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8      163ns ± 5%      159ns ± 3%    -2.46%  (p=0.032 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8      169ns ± 6%      162ns ± 3%    -4.60%  (p=0.005 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8    1.22µs ± 4%     1.21µs ± 3%      ~     (p=0.882 n=9+9)
+CRC32/poly=Castagnoli/size=32kB/align=1-8    1.26µs ± 3%     1.22µs ± 4%    -3.48%  (p=0.002 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8         36.5ns ±11%     35.6ns ± 3%      ~     (p=0.216 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8         35.1ns ± 5%     35.5ns ± 1%      ~     (p=0.508 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8         91.6ns ± 9%     87.6ns ± 2%    -4.35%  (p=0.002 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8         91.1ns ± 6%     88.0ns ± 3%      ~     (p=0.055 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8        1.13µs ± 5%     1.08µs ± 3%    -4.93%  (p=0.000 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8        1.13µs ± 6%     1.17µs ± 8%      ~     (p=0.143 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8        2.24µs ± 6%     2.34µs ± 4%    +4.34%  (p=0.010 n=9+10)
+CRC32/poly=Koopman/size=1kB/align=1-8        2.15µs ± 2%     2.36µs ± 5%    +9.84%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8        9.03µs ± 6%     9.00µs ± 6%      ~     (p=0.971 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8        8.94µs ±10%     9.05µs ±12%      ~     (p=0.754 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8       72.4µs ± 9%     72.9µs ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8       69.6µs ± 3%     74.3µs ± 3%    +6.70%  (p=0.000 n=8+10)
+[Geo mean]                                    345ns           238ns        -30.99%
+
+name                                       old speed      new speed       delta
+CRC32/poly=IEEE/size=15/align=0-8           321MB/s ± 8%    337MB/s ± 3%    +5.06%  (p=0.009 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8           336MB/s ± 4%    337MB/s ± 4%      ~     (p=0.579 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8           975MB/s ± 1%    942MB/s ± 5%    -3.37%  (p=0.001 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8           974MB/s ± 1%    952MB/s ± 3%    -2.25%  (p=0.000 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8         2.15GB/s ± 4%   8.97GB/s ± 3%  +317.65%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8         2.17GB/s ± 3%   8.96GB/s ± 3%  +312.89%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8         2.26GB/s ± 4%  10.88GB/s ± 2%  +381.12%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8         2.31GB/s ± 2%  10.98GB/s ± 2%  +375.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8         2.36GB/s ± 7%  13.73GB/s ± 1%  +482.26%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8         2.33GB/s ± 6%  13.68GB/s ± 3%  +488.23%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8        2.19GB/s ± 7%  15.19GB/s ± 3%  +591.99%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8        2.31GB/s ± 8%  15.04GB/s ± 3%  +550.07%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8     916MB/s ± 2%    920MB/s ± 2%      ~     (p=0.489 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8     870MB/s ± 2%    867MB/s ± 2%      ~     (p=0.661 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8    2.30GB/s ± 2%   2.28GB/s ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8    2.03GB/s ± 3%   2.06GB/s ± 2%      ~     (p=0.063 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8   12.7GB/s ± 2%   12.8GB/s ± 4%      ~     (p=0.529 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8   12.1GB/s ± 3%   12.2GB/s ± 1%      ~     (p=0.780 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8   15.6GB/s ± 1%   15.5GB/s ± 1%    -1.02%  (p=0.002 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8   14.6GB/s ± 6%   15.0GB/s ± 2%      ~     (p=0.211 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8   25.1GB/s ± 5%   25.7GB/s ± 3%      ~     (p=0.052 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8   24.1GB/s ± 6%   25.3GB/s ± 3%    +4.71%  (p=0.005 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8  26.9GB/s ± 4%   26.8GB/s ± 5%      ~     (p=0.842 n=9+10)
+CRC32/poly=Castagnoli/size=32kB/align=1-8  25.9GB/s ± 3%   26.8GB/s ± 4%    +3.62%  (p=0.002 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8        412MB/s ±10%    421MB/s ± 3%      ~     (p=0.218 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8        427MB/s ± 5%    422MB/s ± 1%      ~     (p=0.497 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8        437MB/s ± 9%    456MB/s ± 2%    +4.50%  (p=0.002 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8        440MB/s ± 6%    455MB/s ± 3%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8       453MB/s ± 5%    476MB/s ± 3%    +5.09%  (p=0.000 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8       455MB/s ± 6%    440MB/s ± 8%      ~     (p=0.143 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8       452MB/s ± 9%    438MB/s ± 4%      ~     (p=0.052 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=1-8       477MB/s ± 2%    434MB/s ± 5%    -8.92%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8       454MB/s ± 5%    455MB/s ± 6%      ~     (p=0.971 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8       459MB/s ± 9%    455MB/s ±11%      ~     (p=0.739 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8      453MB/s ± 8%    450MB/s ± 4%      ~     (p=0.684 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8      471MB/s ± 3%    441MB/s ± 3%    -6.25%  (p=0.000 n=8+10)
+[Geo mean]                                 1.71GB/s        2.48GB/s        +44.88%
diff --git a/cmd/benchstat/testdata/oldnewhtml.golden b/cmd/benchstat/testdata/oldnewhtml.golden
new file mode 100644
index 0000000..c4f39ba
--- /dev/null
+++ b/cmd/benchstat/testdata/oldnewhtml.golden
@@ -0,0 +1,81 @@
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name</th><th>old time/op</th><th>new time/op</th><th>delta</th>
+<tr><td>CRC32/poly=IEEE/size=15/align=0-8</td><td>46.9ns ± 8%</td><td>44.5ns ± 3%</td><td>-5.01%</td><td>(p=0.008 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=15/align=1-8</td><td>44.7ns ± 5%</td><td>44.5ns ± 4%</td><td>~   </td><td>(p=0.539 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=0-8</td><td>41.0ns ± 1%</td><td>42.5ns ± 6%</td><td>+3.56%</td><td>(p=0.000 n=8+10)</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=1-8</td><td>41.1ns ± 1%</td><td>42.0ns ± 3%</td><td>+2.34%</td><td>(p=0.000 n=9+10)</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=0-8</td><td>238ns ± 5%</td><td>57ns ± 3%</td><td>-76.00%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=1-8</td><td>236ns ± 3%</td><td>57ns ± 3%</td><td>-75.72%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=0-8</td><td>452ns ± 4%</td><td>94ns ± 2%</td><td>-79.20%</td><td>(p=0.000 n=10+8)</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=1-8</td><td>444ns ± 2%</td><td>93ns ± 2%</td><td>-78.97%</td><td>(p=0.000 n=10+8)</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=0-8</td><td>1.74µs ± 8%</td><td>0.30µs ± 1%</td><td>-82.87%</td><td>(p=0.000 n=10+9)</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=1-8</td><td>1.76µs ± 6%</td><td>0.30µs ± 3%</td><td>-83.05%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=0-8</td><td>15.0µs ± 7%</td><td>2.2µs ± 3%</td><td>-85.57%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=1-8</td><td>14.2µs ± 7%</td><td>2.2µs ± 3%</td><td>-84.65%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=0-8</td><td>16.4ns ± 3%</td><td>16.3ns ± 2%</td><td>~   </td><td>(p=0.615 n=9+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=1-8</td><td>17.2ns ± 2%</td><td>17.3ns ± 2%</td><td>~   </td><td>(p=0.650 n=9+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=0-8</td><td>17.4ns ± 2%</td><td>17.5ns ± 4%</td><td>~   </td><td>(p=0.694 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=1-8</td><td>19.7ns ± 3%</td><td>19.4ns ± 2%</td><td>-1.62%</td><td>(p=0.036 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=0-8</td><td>40.2ns ± 2%</td><td>40.1ns ± 4%</td><td>~   </td><td>(p=0.614 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=1-8</td><td>42.1ns ± 3%</td><td>41.9ns ± 2%</td><td>~   </td><td>(p=0.952 n=10+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=0-8</td><td>65.5ns ± 1%</td><td>66.2ns ± 1%</td><td>+1.01%</td><td>(p=0.003 n=9+8)</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=1-8</td><td>70.1ns ± 6%</td><td>68.5ns ± 2%</td><td>~   </td><td>(p=0.190 n=10+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=0-8</td><td>163ns ± 5%</td><td>159ns ± 3%</td><td>-2.46%</td><td>(p=0.032 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=1-8</td><td>169ns ± 6%</td><td>162ns ± 3%</td><td>-4.60%</td><td>(p=0.005 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=0-8</td><td>1.22µs ± 4%</td><td>1.21µs ± 3%</td><td>~   </td><td>(p=0.882 n=9+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=1-8</td><td>1.26µs ± 3%</td><td>1.22µs ± 4%</td><td>-3.48%</td><td>(p=0.002 n=9+10)</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=0-8</td><td>36.5ns ±11%</td><td>35.6ns ± 3%</td><td>~   </td><td>(p=0.216 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=1-8</td><td>35.1ns ± 5%</td><td>35.5ns ± 1%</td><td>~   </td><td>(p=0.508 n=10+9)</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=0-8</td><td>91.6ns ± 9%</td><td>87.6ns ± 2%</td><td>-4.35%</td><td>(p=0.002 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=1-8</td><td>91.1ns ± 6%</td><td>88.0ns ± 3%</td><td>~   </td><td>(p=0.055 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=0-8</td><td>1.13µs ± 5%</td><td>1.08µs ± 3%</td><td>-4.93%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=1-8</td><td>1.13µs ± 6%</td><td>1.17µs ± 8%</td><td>~   </td><td>(p=0.143 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=0-8</td><td>2.24µs ± 6%</td><td>2.34µs ± 4%</td><td>+4.34%</td><td>(p=0.010 n=9+10)</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=1-8</td><td>2.15µs ± 2%</td><td>2.36µs ± 5%</td><td>+9.84%</td><td>(p=0.000 n=9+10)</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=0-8</td><td>9.03µs ± 6%</td><td>9.00µs ± 6%</td><td>~   </td><td>(p=0.971 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=1-8</td><td>8.94µs ±10%</td><td>9.05µs ±12%</td><td>~   </td><td>(p=0.754 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=0-8</td><td>72.4µs ± 9%</td><td>72.9µs ± 4%</td><td>~   </td><td>(p=0.684 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=1-8</td><td>69.6µs ± 3%</td><td>74.3µs ± 3%</td><td>+6.70%</td><td>(p=0.000 n=8+10)</td>
+</table>
+
+<style>.benchstat tbody td:nth-child(1n+2) { text-align: right; padding: 0em 1em; }</style>
+<table class='benchstat'>
+<tr><th>name</th><th>old speed</th><th>new speed</th><th>delta</th>
+<tr><td>CRC32/poly=IEEE/size=15/align=0-8</td><td>321MB/s ± 8%</td><td>337MB/s ± 3%</td><td>+5.06%</td><td>(p=0.009 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=15/align=1-8</td><td>336MB/s ± 4%</td><td>337MB/s ± 4%</td><td>~   </td><td>(p=0.579 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=0-8</td><td>975MB/s ± 1%</td><td>942MB/s ± 5%</td><td>-3.37%</td><td>(p=0.001 n=8+10)</td>
+<tr><td>CRC32/poly=IEEE/size=40/align=1-8</td><td>974MB/s ± 1%</td><td>952MB/s ± 3%</td><td>-2.25%</td><td>(p=0.000 n=9+10)</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=0-8</td><td>2.15GB/s ± 4%</td><td>8.97GB/s ± 3%</td><td>+317.65%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=512/align=1-8</td><td>2.17GB/s ± 3%</td><td>8.96GB/s ± 3%</td><td>+312.89%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=0-8</td><td>2.26GB/s ± 4%</td><td>10.88GB/s ± 2%</td><td>+381.12%</td><td>(p=0.000 n=10+8)</td>
+<tr><td>CRC32/poly=IEEE/size=1kB/align=1-8</td><td>2.31GB/s ± 2%</td><td>10.98GB/s ± 2%</td><td>+375.97%</td><td>(p=0.000 n=10+8)</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=0-8</td><td>2.36GB/s ± 7%</td><td>13.73GB/s ± 1%</td><td>+482.26%</td><td>(p=0.000 n=10+9)</td>
+<tr><td>CRC32/poly=IEEE/size=4kB/align=1-8</td><td>2.33GB/s ± 6%</td><td>13.68GB/s ± 3%</td><td>+488.23%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=0-8</td><td>2.19GB/s ± 7%</td><td>15.19GB/s ± 3%</td><td>+591.99%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=IEEE/size=32kB/align=1-8</td><td>2.31GB/s ± 8%</td><td>15.04GB/s ± 3%</td><td>+550.07%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=0-8</td><td>916MB/s ± 2%</td><td>920MB/s ± 2%</td><td>~   </td><td>(p=0.489 n=9+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=15/align=1-8</td><td>870MB/s ± 2%</td><td>867MB/s ± 2%</td><td>~   </td><td>(p=0.661 n=9+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=0-8</td><td>2.30GB/s ± 2%</td><td>2.28GB/s ± 4%</td><td>~   </td><td>(p=0.684 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=40/align=1-8</td><td>2.03GB/s ± 3%</td><td>2.06GB/s ± 2%</td><td>~   </td><td>(p=0.063 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=0-8</td><td>12.7GB/s ± 2%</td><td>12.8GB/s ± 4%</td><td>~   </td><td>(p=0.529 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=512/align=1-8</td><td>12.1GB/s ± 3%</td><td>12.2GB/s ± 1%</td><td>~   </td><td>(p=0.780 n=10+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=0-8</td><td>15.6GB/s ± 1%</td><td>15.5GB/s ± 1%</td><td>-1.02%</td><td>(p=0.002 n=9+8)</td>
+<tr><td>CRC32/poly=Castagnoli/size=1kB/align=1-8</td><td>14.6GB/s ± 6%</td><td>15.0GB/s ± 2%</td><td>~   </td><td>(p=0.211 n=10+9)</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=0-8</td><td>25.1GB/s ± 5%</td><td>25.7GB/s ± 3%</td><td>~   </td><td>(p=0.052 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=4kB/align=1-8</td><td>24.1GB/s ± 6%</td><td>25.3GB/s ± 3%</td><td>+4.71%</td><td>(p=0.005 n=10+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=0-8</td><td>26.9GB/s ± 4%</td><td>26.8GB/s ± 5%</td><td>~   </td><td>(p=0.842 n=9+10)</td>
+<tr><td>CRC32/poly=Castagnoli/size=32kB/align=1-8</td><td>25.9GB/s ± 3%</td><td>26.8GB/s ± 4%</td><td>+3.62%</td><td>(p=0.002 n=9+10)</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=0-8</td><td>412MB/s ±10%</td><td>421MB/s ± 3%</td><td>~   </td><td>(p=0.218 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=15/align=1-8</td><td>427MB/s ± 5%</td><td>422MB/s ± 1%</td><td>~   </td><td>(p=0.497 n=10+9)</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=0-8</td><td>437MB/s ± 9%</td><td>456MB/s ± 2%</td><td>+4.50%</td><td>(p=0.002 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=40/align=1-8</td><td>440MB/s ± 6%</td><td>455MB/s ± 3%</td><td>~   </td><td>(p=0.052 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=0-8</td><td>453MB/s ± 5%</td><td>476MB/s ± 3%</td><td>+5.09%</td><td>(p=0.000 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=512/align=1-8</td><td>455MB/s ± 6%</td><td>440MB/s ± 8%</td><td>~   </td><td>(p=0.143 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=0-8</td><td>452MB/s ± 9%</td><td>438MB/s ± 4%</td><td>~   </td><td>(p=0.052 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=1kB/align=1-8</td><td>477MB/s ± 2%</td><td>434MB/s ± 5%</td><td>-8.92%</td><td>(p=0.000 n=9+10)</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=0-8</td><td>454MB/s ± 5%</td><td>455MB/s ± 6%</td><td>~   </td><td>(p=0.971 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=4kB/align=1-8</td><td>459MB/s ± 9%</td><td>455MB/s ±11%</td><td>~   </td><td>(p=0.739 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=0-8</td><td>453MB/s ± 8%</td><td>450MB/s ± 4%</td><td>~   </td><td>(p=0.684 n=10+10)</td>
+<tr><td>CRC32/poly=Koopman/size=32kB/align=1-8</td><td>471MB/s ± 3%</td><td>441MB/s ± 3%</td><td>-6.25%</td><td>(p=0.000 n=8+10)</td>
+</table>
diff --git a/cmd/benchstat/testdata/oldnewttest.golden b/cmd/benchstat/testdata/oldnewttest.golden
new file mode 100644
index 0000000..9ff4fb3
--- /dev/null
+++ b/cmd/benchstat/testdata/oldnewttest.golden
@@ -0,0 +1,75 @@
+name                                       old time/op    new time/op     delta
+CRC32/poly=IEEE/size=15/align=0-8            46.9ns ± 8%     44.5ns ± 3%    -5.01%  (p=0.011 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8            44.7ns ± 5%     44.5ns ± 4%      ~     (p=0.600 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8            41.0ns ± 1%     42.5ns ± 6%    +3.56%  (p=0.006 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8            41.1ns ± 1%     42.0ns ± 3%    +2.34%  (p=0.001 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8            238ns ± 5%       57ns ± 3%   -76.00%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8            236ns ± 3%       57ns ± 3%   -75.72%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8            452ns ± 4%       94ns ± 2%   -79.20%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8            444ns ± 2%       93ns ± 2%   -78.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8           1.74µs ± 8%     0.30µs ± 1%   -82.87%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8           1.76µs ± 6%     0.30µs ± 3%   -83.05%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8          15.0µs ± 7%      2.2µs ± 3%   -85.57%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8          14.2µs ± 7%      2.2µs ± 3%   -84.65%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8      16.4ns ± 3%     16.3ns ± 2%      ~     (p=0.511 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8      17.2ns ± 2%     17.3ns ± 2%      ~     (p=0.553 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8      17.4ns ± 2%     17.5ns ± 4%      ~     (p=0.472 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8      19.7ns ± 3%     19.4ns ± 2%    -1.62%  (p=0.033 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8     40.2ns ± 2%     40.1ns ± 4%      ~     (p=0.885 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8     42.1ns ± 3%     41.9ns ± 2%      ~     (p=0.430 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8     65.5ns ± 1%     66.2ns ± 1%    +1.01%  (p=0.001 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8     70.1ns ± 6%     68.5ns ± 2%      ~     (p=0.069 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8      163ns ± 5%      159ns ± 3%    -2.46%  (p=0.029 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8      169ns ± 6%      162ns ± 3%    -4.60%  (p=0.002 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8    1.22µs ± 4%     1.21µs ± 3%      ~     (p=0.735 n=9+9)
+CRC32/poly=Castagnoli/size=32kB/align=1-8    1.26µs ± 3%     1.22µs ± 4%    -3.48%  (p=0.001 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8         36.5ns ±11%     35.6ns ± 3%      ~     (p=0.183 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8         35.1ns ± 5%     35.5ns ± 1%      ~     (p=0.374 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8         91.6ns ± 9%     87.6ns ± 2%    -4.35%  (p=0.009 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8         91.1ns ± 6%     88.0ns ± 3%    -3.35%  (p=0.022 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8        1.13µs ± 5%     1.08µs ± 3%    -4.93%  (p=0.001 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8        1.13µs ± 6%     1.17µs ± 8%      ~     (p=0.086 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8        2.24µs ± 6%     2.34µs ± 4%    +4.34%  (p=0.008 n=9+10)
+CRC32/poly=Koopman/size=1kB/align=1-8        2.15µs ± 2%     2.36µs ± 5%    +9.84%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8        9.03µs ± 6%     9.00µs ± 6%      ~     (p=0.849 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8        8.94µs ±10%     9.05µs ±12%      ~     (p=0.678 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8       72.4µs ± 9%     72.9µs ± 4%      ~     (p=0.730 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8       69.6µs ± 3%     74.3µs ± 3%    +6.70%  (p=0.000 n=8+10)
+
+name                                       old speed      new speed       delta
+CRC32/poly=IEEE/size=15/align=0-8           321MB/s ± 8%    337MB/s ± 3%    +5.06%  (p=0.010 n=10+10)
+CRC32/poly=IEEE/size=15/align=1-8           336MB/s ± 4%    337MB/s ± 4%      ~     (p=0.600 n=10+10)
+CRC32/poly=IEEE/size=40/align=0-8           975MB/s ± 1%    942MB/s ± 5%    -3.37%  (p=0.005 n=8+10)
+CRC32/poly=IEEE/size=40/align=1-8           974MB/s ± 1%    952MB/s ± 3%    -2.25%  (p=0.001 n=9+10)
+CRC32/poly=IEEE/size=512/align=0-8         2.15GB/s ± 4%   8.97GB/s ± 3%  +317.65%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=512/align=1-8         2.17GB/s ± 3%   8.96GB/s ± 3%  +312.89%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=1kB/align=0-8         2.26GB/s ± 4%  10.88GB/s ± 2%  +381.12%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=1kB/align=1-8         2.31GB/s ± 2%  10.98GB/s ± 2%  +375.97%  (p=0.000 n=10+8)
+CRC32/poly=IEEE/size=4kB/align=0-8         2.36GB/s ± 7%  13.73GB/s ± 1%  +482.26%  (p=0.000 n=10+9)
+CRC32/poly=IEEE/size=4kB/align=1-8         2.33GB/s ± 6%  13.68GB/s ± 3%  +488.23%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=0-8        2.19GB/s ± 7%  15.19GB/s ± 3%  +591.99%  (p=0.000 n=10+10)
+CRC32/poly=IEEE/size=32kB/align=1-8        2.31GB/s ± 8%  15.04GB/s ± 3%  +550.07%  (p=0.000 n=10+10)
+CRC32/poly=Castagnoli/size=15/align=0-8     916MB/s ± 2%    920MB/s ± 2%      ~     (p=0.469 n=9+9)
+CRC32/poly=Castagnoli/size=15/align=1-8     870MB/s ± 2%    867MB/s ± 2%      ~     (p=0.599 n=9+10)
+CRC32/poly=Castagnoli/size=40/align=0-8    2.30GB/s ± 2%   2.28GB/s ± 4%      ~     (p=0.469 n=10+10)
+CRC32/poly=Castagnoli/size=40/align=1-8    2.03GB/s ± 3%   2.06GB/s ± 2%    +1.64%  (p=0.035 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=0-8   12.7GB/s ± 2%   12.8GB/s ± 4%      ~     (p=0.872 n=10+10)
+CRC32/poly=Castagnoli/size=512/align=1-8   12.1GB/s ± 3%   12.2GB/s ± 1%      ~     (p=0.391 n=10+9)
+CRC32/poly=Castagnoli/size=1kB/align=0-8   15.6GB/s ± 1%   15.5GB/s ± 1%    -1.02%  (p=0.001 n=9+8)
+CRC32/poly=Castagnoli/size=1kB/align=1-8   14.6GB/s ± 6%   15.0GB/s ± 2%      ~     (p=0.071 n=10+9)
+CRC32/poly=Castagnoli/size=4kB/align=0-8   25.1GB/s ± 5%   25.7GB/s ± 3%    +2.41%  (p=0.033 n=10+10)
+CRC32/poly=Castagnoli/size=4kB/align=1-8   24.1GB/s ± 6%   25.3GB/s ± 3%    +4.71%  (p=0.002 n=10+10)
+CRC32/poly=Castagnoli/size=32kB/align=0-8  26.9GB/s ± 4%   26.8GB/s ± 5%      ~     (p=0.797 n=9+10)
+CRC32/poly=Castagnoli/size=32kB/align=1-8  25.9GB/s ± 3%   26.8GB/s ± 4%    +3.62%  (p=0.001 n=9+10)
+CRC32/poly=Koopman/size=15/align=0-8        412MB/s ±10%    421MB/s ± 3%      ~     (p=0.203 n=10+10)
+CRC32/poly=Koopman/size=15/align=1-8        427MB/s ± 5%    422MB/s ± 1%      ~     (p=0.306 n=10+9)
+CRC32/poly=Koopman/size=40/align=0-8        437MB/s ± 9%    456MB/s ± 2%    +4.50%  (p=0.008 n=10+10)
+CRC32/poly=Koopman/size=40/align=1-8        440MB/s ± 6%    455MB/s ± 3%    +3.36%  (p=0.024 n=10+10)
+CRC32/poly=Koopman/size=512/align=0-8       453MB/s ± 5%    476MB/s ± 3%    +5.09%  (p=0.001 n=10+10)
+CRC32/poly=Koopman/size=512/align=1-8       455MB/s ± 6%    440MB/s ± 8%      ~     (p=0.096 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=0-8       452MB/s ± 9%    438MB/s ± 4%      ~     (p=0.065 n=10+10)
+CRC32/poly=Koopman/size=1kB/align=1-8       477MB/s ± 2%    434MB/s ± 5%    -8.92%  (p=0.000 n=9+10)
+CRC32/poly=Koopman/size=4kB/align=0-8       454MB/s ± 5%    455MB/s ± 6%      ~     (p=0.844 n=10+10)
+CRC32/poly=Koopman/size=4kB/align=1-8       459MB/s ± 9%    455MB/s ±11%      ~     (p=0.708 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=0-8      453MB/s ± 8%    450MB/s ± 4%      ~     (p=0.669 n=10+10)
+CRC32/poly=Koopman/size=32kB/align=1-8      471MB/s ± 3%    441MB/s ± 3%    -6.25%  (p=0.000 n=8+10)
diff --git a/cmd/benchstat/testdata/slashslash4.txt b/cmd/benchstat/testdata/slashslash4.txt
new file mode 100644
index 0000000..509c0d1
--- /dev/null
+++ b/cmd/benchstat/testdata/slashslash4.txt
@@ -0,0 +1,127 @@
+pkg: hash/crc32
+goarch: amd64
+goos: darwin
+note: hw acceleration disabled, -bench=//4
+
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        40.9 ns/op	 978.88 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.8 ns/op	 933.98 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        40.9 ns/op	 978.23 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.4 ns/op	 942.76 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.4 ns/op	 967.26 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        41.6 ns/op	 962.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.6 ns/op	 939.29 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        43.5 ns/op	 918.83 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.0 ns/op	 951.27 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        42.7 ns/op	 937.30 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.1 ns/op	 973.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        43.6 ns/op	 918.29 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.8 ns/op	 934.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.0 ns/op	 975.00 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.2 ns/op	 970.18 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.8 ns/op	 980.81 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        42.4 ns/op	 942.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.4 ns/op	 966.71 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        40.7 ns/op	 982.65 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        41.8 ns/op	 955.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1807 ns/op	2266.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1668 ns/op	2454.61 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1718 ns/op	2383.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1675 ns/op	2445.28 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1682 ns/op	2434.60 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1673 ns/op	2448.24 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1672 ns/op	2449.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1693 ns/op	2419.16 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1658 ns/op	2469.45 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      1699 ns/op	2410.39 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1699 ns/op	2409.64 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1677 ns/op	2441.13 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1671 ns/op	2450.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1666 ns/op	2457.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1757 ns/op	2330.39 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1666 ns/op	2457.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1716 ns/op	2386.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1662 ns/op	2464.20 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1703 ns/op	2404.35 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	  100000	      1681 ns/op	2436.35 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.1 ns/op	2334.91 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.5 ns/op	2288.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.8 ns/op	2244.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        17.3 ns/op	2311.76 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        18.0 ns/op	2224.01 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        20.7 ns/op	1933.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        19.3 ns/op	2073.61 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        19.3 ns/op	2067.47 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        19.9 ns/op	2011.31 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	10000000	        18.9 ns/op	2117.00 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.9 ns/op	2005.75 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.5 ns/op	2049.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.2 ns/op	2081.60 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        20.0 ns/op	1996.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.4 ns/op	2066.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.8 ns/op	2025.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.8 ns/op	2015.13 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        21.2 ns/op	1888.37 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        19.5 ns/op	2046.76 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	10000000	        22.3 ns/op	1796.24 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       174 ns/op	23478.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       158 ns/op	25880.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       164 ns/op	24857.78 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26150.67 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26185.14 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       161 ns/op	25366.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       164 ns/op	24930.88 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       156 ns/op	26209.59 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       161 ns/op	25376.24 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	 1000000	       162 ns/op	25281.02 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       168 ns/op	24280.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       166 ns/op	24653.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       163 ns/op	24991.81 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       158 ns/op	25826.99 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       162 ns/op	25188.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       164 ns/op	24970.03 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       179 ns/op	22771.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       176 ns/op	23182.06 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       184 ns/op	22193.41 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	 1000000	       176 ns/op	23191.10 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       106 ns/op	 376.78 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       102 ns/op	 391.07 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        99.7 ns/op	 401.12 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        95.6 ns/op	 418.47 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        93.3 ns/op	 428.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        90.5 ns/op	 441.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        92.1 ns/op	 434.22 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        85.6 ns/op	 467.07 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        87.6 ns/op	 456.72 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 2000000	        85.7 ns/op	 466.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        85.6 ns/op	 467.12 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        86.1 ns/op	 464.59 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        85.5 ns/op	 467.95 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        86.5 ns/op	 462.44 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        89.8 ns/op	 445.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        86.4 ns/op	 463.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        85.8 ns/op	 466.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.7 ns/op	 456.34 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        88.0 ns/op	 454.78 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 2000000	        87.2 ns/op	 458.77 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8373 ns/op	 489.18 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8397 ns/op	 487.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9496 ns/op	 431.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9426 ns/op	 434.52 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9035 ns/op	 453.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9295 ns/op	 440.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9220 ns/op	 444.22 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9539 ns/op	 429.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      8401 ns/op	 487.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   20000	      9634 ns/op	 425.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9591 ns/op	 427.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9878 ns/op	 414.64 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9630 ns/op	 425.32 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9284 ns/op	 441.18 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8676 ns/op	 472.10 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      8844 ns/op	 463.13 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9621 ns/op	 425.72 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9364 ns/op	 437.38 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9993 ns/op	 409.85 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   20000	      9671 ns/op	 423.50 MB/s
+PASS
+ok  	hash/crc32	25.585s
diff --git a/cmd/benchstat/testdata/x386.txt b/cmd/benchstat/testdata/x386.txt
new file mode 100644
index 0000000..73d2a05
--- /dev/null
+++ b/cmd/benchstat/testdata/x386.txt
@@ -0,0 +1,368 @@
+pkg: hash/crc32
+goarch: 386
+goos: darwin
+note: 32-bit build
+warning: <blink>hello</blink>
+
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        60.1 ns/op	 249.74 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        59.4 ns/op	 252.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        62.3 ns/op	 240.78 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        59.4 ns/op	 252.36 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        61.5 ns/op	 243.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        67.8 ns/op	 221.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        60.1 ns/op	 249.62 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        65.6 ns/op	 228.65 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        67.9 ns/op	 220.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=0-8         	 2000000	        59.4 ns/op	 252.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        61.3 ns/op	 244.70 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        63.9 ns/op	 234.92 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        60.9 ns/op	 246.27 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        62.9 ns/op	 238.32 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        63.4 ns/op	 236.54 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        68.7 ns/op	 218.33 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        68.1 ns/op	 220.24 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        64.6 ns/op	 232.32 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        59.2 ns/op	 253.35 MB/s
+BenchmarkCRC32/poly=IEEE/size=15/align=1-8         	 2000000	        61.9 ns/op	 242.29 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        57.3 ns/op	 698.52 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        58.2 ns/op	 686.77 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        57.1 ns/op	 700.17 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        58.5 ns/op	 684.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        56.4 ns/op	 708.98 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        56.8 ns/op	 704.40 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        57.8 ns/op	 692.04 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        56.6 ns/op	 707.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 2000000	        59.0 ns/op	 677.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=0-8         	 3000000	        56.7 ns/op	 705.31 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 2000000	        57.3 ns/op	 697.95 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 2000000	        58.1 ns/op	 688.08 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        56.4 ns/op	 709.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 2000000	        56.4 ns/op	 709.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 2000000	        56.3 ns/op	 710.10 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        56.3 ns/op	 710.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        57.2 ns/op	 698.71 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        58.6 ns/op	 682.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        59.0 ns/op	 678.11 MB/s
+BenchmarkCRC32/poly=IEEE/size=40/align=1-8         	 3000000	        57.7 ns/op	 693.31 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       331 ns/op	1544.96 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       330 ns/op	1549.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       349 ns/op	1465.25 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       330 ns/op	1548.50 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       339 ns/op	1506.14 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       330 ns/op	1547.00 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       330 ns/op	1549.89 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       333 ns/op	1536.18 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       333 ns/op	1534.03 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=0-8        	  500000	       335 ns/op	1524.75 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  300000	       334 ns/op	1529.22 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       329 ns/op	1553.02 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       339 ns/op	1510.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  300000	       345 ns/op	1481.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       329 ns/op	1551.53 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       337 ns/op	1515.82 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       337 ns/op	1516.02 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       332 ns/op	1538.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       328 ns/op	1556.83 MB/s
+BenchmarkCRC32/poly=IEEE/size=512/align=1-8        	  500000	       343 ns/op	1490.30 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       632 ns/op	1618.84 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       622 ns/op	1643.79 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       616 ns/op	1660.67 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       622 ns/op	1643.99 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       639 ns/op	1602.15 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       620 ns/op	1649.79 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       624 ns/op	1638.85 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       641 ns/op	1595.55 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       622 ns/op	1645.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=0-8        	  200000	       625 ns/op	1636.01 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       676 ns/op	1513.45 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       647 ns/op	1582.09 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       620 ns/op	1650.24 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       642 ns/op	1594.15 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       617 ns/op	1658.81 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       638 ns/op	1604.66 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       618 ns/op	1655.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       620 ns/op	1649.88 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       624 ns/op	1638.49 MB/s
+BenchmarkCRC32/poly=IEEE/size=1kB/align=1-8        	  200000	       651 ns/op	1572.31 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2525 ns/op	1621.93 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2379 ns/op	1721.02 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	  100000	      2431 ns/op	1684.62 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2481 ns/op	1650.59 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2625 ns/op	1559.90 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2372 ns/op	1726.40 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2407 ns/op	1701.24 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2440 ns/op	1678.55 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2395 ns/op	1709.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=0-8        	   50000	      2512 ns/op	1630.23 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2493 ns/op	1642.53 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2548 ns/op	1607.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2416 ns/op	1695.07 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2483 ns/op	1649.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2378 ns/op	1722.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2373 ns/op	1725.47 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2541 ns/op	1611.87 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2412 ns/op	1697.97 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2360 ns/op	1735.58 MB/s
+BenchmarkCRC32/poly=IEEE/size=4kB/align=1-8        	   50000	      2341 ns/op	1749.19 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     19117 ns/op	1714.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     19504 ns/op	1680.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     18836 ns/op	1739.64 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     19885 ns/op	1647.81 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     18815 ns/op	1741.56 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     19054 ns/op	1719.73 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     18893 ns/op	1734.36 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     18778 ns/op	1744.95 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     18894 ns/op	1734.30 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=0-8       	   10000	     19723 ns/op	1661.41 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19206 ns/op	1706.06 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     18774 ns/op	1745.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19806 ns/op	1654.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19032 ns/op	1721.68 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19774 ns/op	1657.05 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19158 ns/op	1710.37 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19134 ns/op	1712.51 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19073 ns/op	1718.01 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     20436 ns/op	1603.44 MB/s
+BenchmarkCRC32/poly=IEEE/size=32kB/align=1-8       	   10000	     19810 ns/op	1654.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        66.3 ns/op	 226.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        63.8 ns/op	 235.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        59.3 ns/op	 252.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 3000000	        59.7 ns/op	 251.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        59.9 ns/op	 250.28 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        59.4 ns/op	 252.63 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        58.7 ns/op	 255.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 3000000	        60.1 ns/op	 249.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        59.1 ns/op	 253.84 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=0-8   	 2000000	        58.7 ns/op	 255.71 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        59.1 ns/op	 253.95 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        58.7 ns/op	 255.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        60.4 ns/op	 248.51 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        58.8 ns/op	 255.07 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        60.6 ns/op	 247.35 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        59.3 ns/op	 252.88 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 3000000	        58.6 ns/op	 255.98 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        59.0 ns/op	 254.28 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        59.1 ns/op	 253.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=15/align=1-8   	 2000000	        59.9 ns/op	 250.50 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 3000000	        56.3 ns/op	 710.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        56.1 ns/op	 713.21 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        59.8 ns/op	 668.58 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        61.6 ns/op	 649.17 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 3000000	        59.0 ns/op	 678.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        60.9 ns/op	 656.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 3000000	        60.6 ns/op	 660.54 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 3000000	        60.2 ns/op	 664.38 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        63.3 ns/op	 631.62 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=0-8   	 2000000	        58.8 ns/op	 680.65 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 3000000	        56.2 ns/op	 711.22 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 3000000	        56.1 ns/op	 713.52 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        58.2 ns/op	 687.04 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        56.4 ns/op	 709.57 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 3000000	        58.2 ns/op	 687.58 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        56.2 ns/op	 711.91 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        58.6 ns/op	 682.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        62.0 ns/op	 644.93 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 2000000	        61.0 ns/op	 655.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=40/align=1-8   	 3000000	        58.2 ns/op	 686.72 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       337 ns/op	1517.89 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       342 ns/op	1493.38 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       350 ns/op	1459.81 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       370 ns/op	1382.99 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       351 ns/op	1456.12 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       357 ns/op	1433.94 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       356 ns/op	1435.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       356 ns/op	1436.96 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       349 ns/op	1466.27 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=0-8  	  500000	       340 ns/op	1501.51 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       360 ns/op	1420.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  300000	       358 ns/op	1427.91 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  300000	       344 ns/op	1487.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       352 ns/op	1453.44 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       358 ns/op	1426.66 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       347 ns/op	1474.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       335 ns/op	1526.35 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       376 ns/op	1359.30 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       337 ns/op	1515.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=512/align=1-8  	  500000	       331 ns/op	1543.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       641 ns/op	1596.29 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       629 ns/op	1627.68 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       632 ns/op	1618.10 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       677 ns/op	1512.13 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       677 ns/op	1511.58 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       666 ns/op	1536.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       654 ns/op	1563.44 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       663 ns/op	1544.36 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       663 ns/op	1543.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=0-8  	  200000	       665 ns/op	1538.35 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       671 ns/op	1524.71 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       652 ns/op	1569.20 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       645 ns/op	1587.35 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       663 ns/op	1543.45 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       694 ns/op	1474.32 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       674 ns/op	1518.51 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       638 ns/op	1603.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       657 ns/op	1557.80 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       636 ns/op	1609.05 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=1kB/align=1-8  	  200000	       638 ns/op	1604.77 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2358 ns/op	1736.69 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2544 ns/op	1609.49 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2462 ns/op	1663.08 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2493 ns/op	1642.57 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2459 ns/op	1665.28 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2470 ns/op	1657.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2476 ns/op	1653.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2441 ns/op	1677.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2394 ns/op	1710.31 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=0-8  	   50000	      2421 ns/op	1691.81 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2429 ns/op	1686.23 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	  100000	      2555 ns/op	1603.04 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2386 ns/op	1716.33 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2392 ns/op	1712.18 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2433 ns/op	1682.90 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	  100000	      2430 ns/op	1685.17 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2396 ns/op	1709.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2476 ns/op	1654.23 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2571 ns/op	1592.69 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=4kB/align=1-8  	   50000	      2412 ns/op	1697.74 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     20585 ns/op	1591.77 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     19541 ns/op	1676.84 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     20578 ns/op	1592.34 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     20335 ns/op	1611.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	    5000	     21641 ns/op	1514.14 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     19939 ns/op	1643.39 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     21381 ns/op	1532.56 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     20214 ns/op	1620.99 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     21208 ns/op	1545.07 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=0-8 	   10000	     19839 ns/op	1651.64 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	    5000	     23566 ns/op	1390.45 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     20604 ns/op	1590.36 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     19488 ns/op	1681.44 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     22008 ns/op	1488.87 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     19449 ns/op	1684.79 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     19511 ns/op	1679.42 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     19695 ns/op	1663.73 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     20185 ns/op	1623.36 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     20397 ns/op	1606.43 MB/s
+BenchmarkCRC32/poly=Castagnoli/size=32kB/align=1-8 	   10000	     20278 ns/op	1615.93 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 2000000	        55.6 ns/op	 270.00 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        58.3 ns/op	 257.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        60.0 ns/op	 249.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 2000000	        58.5 ns/op	 256.45 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 2000000	        58.3 ns/op	 257.51 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        60.2 ns/op	 249.29 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        60.1 ns/op	 249.55 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 2000000	        57.5 ns/op	 261.00 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        57.0 ns/op	 263.05 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=0-8      	 3000000	        56.6 ns/op	 265.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        60.1 ns/op	 249.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        55.1 ns/op	 272.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        54.2 ns/op	 276.58 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        53.8 ns/op	 279.07 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        57.0 ns/op	 262.94 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 2000000	        56.7 ns/op	 264.60 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        57.4 ns/op	 261.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 2000000	        55.6 ns/op	 269.72 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 3000000	        59.2 ns/op	 253.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=15/align=1-8      	 2000000	        54.9 ns/op	 273.38 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       139 ns/op	 287.45 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       140 ns/op	 284.31 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       141 ns/op	 283.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       138 ns/op	 288.46 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       145 ns/op	 274.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       137 ns/op	 291.46 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       153 ns/op	 260.57 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       144 ns/op	 277.25 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       148 ns/op	 269.74 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=0-8      	 1000000	       138 ns/op	 288.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       136 ns/op	 292.32 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       150 ns/op	 265.66 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       143 ns/op	 279.14 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       139 ns/op	 286.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       138 ns/op	 289.48 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       137 ns/op	 290.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       137 ns/op	 289.91 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       132 ns/op	 302.04 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       133 ns/op	 300.41 MB/s
+BenchmarkCRC32/poly=Koopman/size=40/align=1-8      	 1000000	       131 ns/op	 303.16 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1724 ns/op	 296.97 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1663 ns/op	 307.73 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1687 ns/op	 303.37 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1688 ns/op	 303.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1599 ns/op	 320.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1698 ns/op	 301.42 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1669 ns/op	 306.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1621 ns/op	 315.81 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1721 ns/op	 297.46 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=0-8     	  100000	      1774 ns/op	 288.53 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1665 ns/op	 307.36 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1702 ns/op	 300.76 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1622 ns/op	 315.59 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1606 ns/op	 318.71 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1642 ns/op	 311.64 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1663 ns/op	 307.75 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1618 ns/op	 316.26 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1629 ns/op	 314.15 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1636 ns/op	 312.89 MB/s
+BenchmarkCRC32/poly=Koopman/size=512/align=1-8     	  100000	      1646 ns/op	 310.98 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3428 ns/op	 298.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3209 ns/op	 319.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3232 ns/op	 316.77 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3283 ns/op	 311.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3316 ns/op	 308.75 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3235 ns/op	 316.49 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3324 ns/op	 308.05 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3220 ns/op	 317.94 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3386 ns/op	 302.41 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=0-8     	   50000	      3456 ns/op	 296.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3300 ns/op	 310.29 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3375 ns/op	 303.35 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3326 ns/op	 307.87 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3198 ns/op	 320.19 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3278 ns/op	 312.29 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3289 ns/op	 311.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3206 ns/op	 319.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3230 ns/op	 317.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3279 ns/op	 312.27 MB/s
+BenchmarkCRC32/poly=Koopman/size=1kB/align=1-8     	   50000	      3311 ns/op	 309.24 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13182 ns/op	 310.72 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13639 ns/op	 300.30 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13560 ns/op	 302.06 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13710 ns/op	 298.74 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13051 ns/op	 313.83 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13290 ns/op	 308.19 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13463 ns/op	 304.23 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13403 ns/op	 305.60 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     12934 ns/op	 316.68 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=0-8     	   10000	     13011 ns/op	 314.81 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     14397 ns/op	 284.49 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13142 ns/op	 311.65 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     12905 ns/op	 317.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13503 ns/op	 303.34 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13370 ns/op	 306.34 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13181 ns/op	 310.73 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13252 ns/op	 309.08 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     13340 ns/op	 307.03 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     12869 ns/op	 318.28 MB/s
+BenchmarkCRC32/poly=Koopman/size=4kB/align=1-8     	   10000	     12889 ns/op	 317.79 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    106037 ns/op	 309.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    102938 ns/op	 318.33 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    1000	    103083 ns/op	 317.88 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    103243 ns/op	 317.39 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    107923 ns/op	 303.62 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    108832 ns/op	 301.09 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    106804 ns/op	 306.80 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    1000	    113306 ns/op	 289.20 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    107050 ns/op	 306.10 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=0-8    	    2000	    109691 ns/op	 298.73 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    107190 ns/op	 305.70 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    104206 ns/op	 314.45 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    110537 ns/op	 296.44 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    107769 ns/op	 304.06 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    1000	    104639 ns/op	 313.15 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    109221 ns/op	 300.02 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    102506 ns/op	 319.67 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    104850 ns/op	 312.52 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    104962 ns/op	 312.19 MB/s
+BenchmarkCRC32/poly=Koopman/size=32kB/align=1-8    	    2000	    104807 ns/op	 312.65 MB/s
+PASS
+ok  	hash/crc32	64.158s