diff --git a/gen/slide.go b/gen/slide.go index b29b7ba..84384b7 100644 --- a/gen/slide.go +++ b/gen/slide.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "os" + "strings" ) const sumSlideSize = 127 @@ -17,6 +18,8 @@ func slide() error { package xxhash +import "math/bits" + // Generated by gen/slide.go. DO NOT EDIT. const slideLength = %d @@ -38,6 +41,7 @@ func slide(b []byte) uint64 { // This means I make very liberal use of goto, they shouldn't be red as JMPs but abstract basic blocks links. // - The compiler has some SSA passes. // This is used for all the b_* tricks. + // - We can't trust the compiler to inline anything (except intrinsics). // Setup variables here since go doesn't want use to do dangerous gotos. v1 := prime1 @@ -92,32 +96,28 @@ func slide(b []byte) uint64 { fmt.Fprintf(w, `sz_%d: { b := b_%d[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - b = b[8:] - v1 = round(v1, load) - load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - b = b[8:] - v2 = round(v2, load) - load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 +`, i, i) + for r := 1; r <= 4; r++ { + fmt.Fprintf(w, ` load = %s b = b[8:] - v3 = round(v3, load) - load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_%d = (*[%d]byte)(b_%d[32:]) +`, load64) + genRound(w, 2, fmt.Sprintf("v%d", r), "load") + } + fmt.Fprintf(w, `b_%d = (*[%d]byte)(b_%d[32:]) } -`, i, i, i-32, i-32, i) +`, i-32, i-32, i) // POTENTIAL OPTIMIZATION: b[32:] creates an addition to bump the pointer which means the address dependency on the memory loads is not resolved before the jmp table. I know two fixes: // - change b to a pointer to the end of the slice and subtract the total offset. I don't know how to do this in pure go. // - don't bother reusing the slides, this means each load instruction can hardcode the offset. Make the code significantly bigger and i-cache worst, altho I didn't tried it. } - w.WriteString(` h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) - + w.WriteString(` h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) `) + for r := 1; r <= 4; r++ { + genMergeRound(w, 1, "h", fmt.Sprintf("v%d", r)) + } + w.WriteString("\n") if i != 0 { // Avoid « label sz_0 defined and not used », case 0 shortcuts with a precomputed value. fmt.Fprintf(w, "sz_%d:\n", i) } @@ -134,13 +134,16 @@ func slide(b []byte) uint64 { fmt.Fprintf(w, `sz_%dl: { b := b_%d[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + load := %s + var temp uint64 +`, i, i, load64) + genRound(w, 2, "temp", "load") + fmt.Fprintf(w, `h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_%d = (*[%d]byte)(b_%d[8:]) } -`, i, i, i-8, i-8, i) +`, i-8, i-8, i) } fmt.Fprintf(w, `goto sz_%dl @@ -155,7 +158,7 @@ func slide(b []byte) uint64 { b := b_%d[:] load := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 // Work around for go.dev/issue/68081. h ^= uint64(load) * prime1 - h = rol23(h)*prime2 + prime3 + h = bits.RotateLeft64(h, 23)*prime2 + prime3 b_%d = (*[%d]byte)(b_%d[4:]) goto sz_%dl } @@ -168,7 +171,7 @@ func slide(b []byte) uint64 { i-- fmt.Fprintf(w, `sz_%dl: h ^= uint64(b_%d[0]) * prime5 - h = rol11(h) * prime1 + h = bits.RotateLeft64(h, 11) * prime1 b_%d = (*[%d]byte)(b_%d[1:]) `, i, i, i-1, i-1, i) @@ -207,3 +210,27 @@ sz_0l: return nil } + +func genRound(w *bytes.Buffer, tab uint, acc, input string) { + tabs := strings.Repeat("\t", int(tab)) + fmt.Fprintf(w, `%s%s += %s * prime2 +%s%s = bits.RotateLeft64(%s, 31) +%s%s *= prime1 +`, tabs, acc, input, tabs, acc, acc, tabs, acc) +} + +func genMergeRound(w *bytes.Buffer, tab uint, acc, val string) { + tabs := strings.Repeat("\t", int(tab)) + tab++ + tabsp := strings.Repeat("\t", int(tab)) + fmt.Fprintf(w, `%s{ +%svar temp uint64 +`, tabs, tabsp) + genRound(w, tab, "temp", val) + fmt.Fprintf(w, `%s%s ^= temp +%s%s = %s*prime1 + prime4 +%s} +`, tabsp, acc, tabsp, acc, acc, tabs) +} + +const load64 = "uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081." diff --git a/xxhash_slide.go b/xxhash_slide.go index bc265e8..64b962c 100644 --- a/xxhash_slide.go +++ b/xxhash_slide.go @@ -3,6 +3,8 @@ package xxhash +import "math/bits" + // Generated by gen/slide.go. DO NOT EDIT. const slideLength = 127 @@ -24,6 +26,7 @@ func slide(b []byte) uint64 { // This means I make very liberal use of goto, they shouldn't be red as JMPs but abstract basic blocks links. // - The compiler has some SSA passes. // This is used for all the b_* tricks. + // - We can't trust the compiler to inline anything (except intrinsics). // Setup variables here since go doesn't want use to do dangerous gotos. v1 := prime1 @@ -569,59 +572,117 @@ func slide(b []byte) uint64 { sz_127: { b := b_127[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_95 = (*[95]byte)(b_127[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_95 = (*[95]byte)(b_127[32:]) } sz_95: { b := b_95[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_63 = (*[63]byte)(b_95[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_63 = (*[63]byte)(b_95[32:]) } sz_63: { b := b_63[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_31 = (*[31]byte)(b_63[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_31 = (*[31]byte)(b_63[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_31: h += n @@ -630,59 +691,117 @@ sz_31: sz_126: { b := b_126[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_94 = (*[94]byte)(b_126[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_94 = (*[94]byte)(b_126[32:]) } sz_94: { b := b_94[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_62 = (*[62]byte)(b_94[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_62 = (*[62]byte)(b_94[32:]) } sz_62: { b := b_62[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_30 = (*[30]byte)(b_62[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_30 = (*[30]byte)(b_62[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_30: h += n @@ -691,59 +810,117 @@ sz_30: sz_125: { b := b_125[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_93 = (*[93]byte)(b_125[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_93 = (*[93]byte)(b_125[32:]) } sz_93: { b := b_93[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_61 = (*[61]byte)(b_93[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_61 = (*[61]byte)(b_93[32:]) } sz_61: { b := b_61[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_29 = (*[29]byte)(b_61[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_29 = (*[29]byte)(b_61[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_29: h += n @@ -752,59 +929,117 @@ sz_29: sz_124: { b := b_124[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_92 = (*[92]byte)(b_124[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_92 = (*[92]byte)(b_124[32:]) } sz_92: { b := b_92[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_60 = (*[60]byte)(b_92[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_60 = (*[60]byte)(b_92[32:]) } sz_60: { b := b_60[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_28 = (*[28]byte)(b_60[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_28 = (*[28]byte)(b_60[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_28: h += n @@ -813,59 +1048,117 @@ sz_28: sz_123: { b := b_123[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_91 = (*[91]byte)(b_123[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_91 = (*[91]byte)(b_123[32:]) } sz_91: { b := b_91[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_59 = (*[59]byte)(b_91[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_59 = (*[59]byte)(b_91[32:]) } sz_59: { b := b_59[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_27 = (*[27]byte)(b_59[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_27 = (*[27]byte)(b_59[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_27: h += n @@ -874,59 +1167,117 @@ sz_27: sz_122: { b := b_122[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_90 = (*[90]byte)(b_122[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_90 = (*[90]byte)(b_122[32:]) } sz_90: { b := b_90[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_58 = (*[58]byte)(b_90[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_58 = (*[58]byte)(b_90[32:]) } sz_58: { b := b_58[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_26 = (*[26]byte)(b_58[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_26 = (*[26]byte)(b_58[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_26: h += n @@ -935,59 +1286,117 @@ sz_26: sz_121: { b := b_121[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_89 = (*[89]byte)(b_121[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_89 = (*[89]byte)(b_121[32:]) } sz_89: { b := b_89[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_57 = (*[57]byte)(b_89[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_57 = (*[57]byte)(b_89[32:]) } sz_57: { b := b_57[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_25 = (*[25]byte)(b_57[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_25 = (*[25]byte)(b_57[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_25: h += n @@ -996,59 +1405,117 @@ sz_25: sz_120: { b := b_120[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_88 = (*[88]byte)(b_120[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_88 = (*[88]byte)(b_120[32:]) } sz_88: { b := b_88[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_56 = (*[56]byte)(b_88[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_56 = (*[56]byte)(b_88[32:]) } sz_56: { b := b_56[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_24 = (*[24]byte)(b_56[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_24 = (*[24]byte)(b_56[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_24: h += n @@ -1057,59 +1524,117 @@ sz_24: sz_119: { b := b_119[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_87 = (*[87]byte)(b_119[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_87 = (*[87]byte)(b_119[32:]) } sz_87: { b := b_87[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_55 = (*[55]byte)(b_87[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_55 = (*[55]byte)(b_87[32:]) } sz_55: { b := b_55[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_23 = (*[23]byte)(b_55[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_23 = (*[23]byte)(b_55[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_23: h += n @@ -1118,59 +1643,117 @@ sz_23: sz_118: { b := b_118[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_86 = (*[86]byte)(b_118[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_86 = (*[86]byte)(b_118[32:]) } sz_86: { b := b_86[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_54 = (*[54]byte)(b_86[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_54 = (*[54]byte)(b_86[32:]) } sz_54: { b := b_54[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_22 = (*[22]byte)(b_54[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_22 = (*[22]byte)(b_54[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_22: h += n @@ -1179,59 +1762,117 @@ sz_22: sz_117: { b := b_117[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_85 = (*[85]byte)(b_117[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_85 = (*[85]byte)(b_117[32:]) } sz_85: { b := b_85[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_53 = (*[53]byte)(b_85[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_53 = (*[53]byte)(b_85[32:]) } sz_53: { b := b_53[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_21 = (*[21]byte)(b_53[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_21 = (*[21]byte)(b_53[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_21: h += n @@ -1240,59 +1881,117 @@ sz_21: sz_116: { b := b_116[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_84 = (*[84]byte)(b_116[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_84 = (*[84]byte)(b_116[32:]) } sz_84: { b := b_84[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_52 = (*[52]byte)(b_84[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_52 = (*[52]byte)(b_84[32:]) } sz_52: { b := b_52[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_20 = (*[20]byte)(b_52[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_20 = (*[20]byte)(b_52[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_20: h += n @@ -1301,59 +2000,117 @@ sz_20: sz_115: { b := b_115[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_83 = (*[83]byte)(b_115[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_83 = (*[83]byte)(b_115[32:]) } sz_83: { b := b_83[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_51 = (*[51]byte)(b_83[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_51 = (*[51]byte)(b_83[32:]) } sz_51: { b := b_51[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_19 = (*[19]byte)(b_51[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_19 = (*[19]byte)(b_51[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_19: h += n @@ -1362,59 +2119,117 @@ sz_19: sz_114: { b := b_114[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_82 = (*[82]byte)(b_114[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_82 = (*[82]byte)(b_114[32:]) } sz_82: { b := b_82[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_50 = (*[50]byte)(b_82[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_50 = (*[50]byte)(b_82[32:]) } sz_50: { b := b_50[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_18 = (*[18]byte)(b_50[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_18 = (*[18]byte)(b_50[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_18: h += n @@ -1423,59 +2238,117 @@ sz_18: sz_113: { b := b_113[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_81 = (*[81]byte)(b_113[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_81 = (*[81]byte)(b_113[32:]) } sz_81: { b := b_81[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_49 = (*[49]byte)(b_81[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_49 = (*[49]byte)(b_81[32:]) } sz_49: { b := b_49[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_17 = (*[17]byte)(b_49[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_17 = (*[17]byte)(b_49[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_17: h += n @@ -1484,59 +2357,117 @@ sz_17: sz_112: { b := b_112[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_80 = (*[80]byte)(b_112[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_80 = (*[80]byte)(b_112[32:]) } sz_80: { b := b_80[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_48 = (*[48]byte)(b_80[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_48 = (*[48]byte)(b_80[32:]) } sz_48: { b := b_48[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_16 = (*[16]byte)(b_48[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_16 = (*[16]byte)(b_48[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_16: h += n @@ -1545,59 +2476,117 @@ sz_16: sz_111: { b := b_111[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_79 = (*[79]byte)(b_111[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_79 = (*[79]byte)(b_111[32:]) } sz_79: { b := b_79[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_47 = (*[47]byte)(b_79[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_47 = (*[47]byte)(b_79[32:]) } sz_47: { b := b_47[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_15 = (*[15]byte)(b_47[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_15 = (*[15]byte)(b_47[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_15: h += n @@ -1606,59 +2595,117 @@ sz_15: sz_110: { b := b_110[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_78 = (*[78]byte)(b_110[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_78 = (*[78]byte)(b_110[32:]) } sz_78: { b := b_78[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_46 = (*[46]byte)(b_78[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_46 = (*[46]byte)(b_78[32:]) } sz_46: { b := b_46[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_14 = (*[14]byte)(b_46[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_14 = (*[14]byte)(b_46[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_14: h += n @@ -1667,59 +2714,117 @@ sz_14: sz_109: { b := b_109[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_77 = (*[77]byte)(b_109[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_77 = (*[77]byte)(b_109[32:]) } sz_77: { b := b_77[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_45 = (*[45]byte)(b_77[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_45 = (*[45]byte)(b_77[32:]) } sz_45: { b := b_45[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_13 = (*[13]byte)(b_45[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_13 = (*[13]byte)(b_45[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_13: h += n @@ -1728,59 +2833,117 @@ sz_13: sz_108: { b := b_108[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_76 = (*[76]byte)(b_108[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_76 = (*[76]byte)(b_108[32:]) } sz_76: { b := b_76[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_44 = (*[44]byte)(b_76[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_44 = (*[44]byte)(b_76[32:]) } sz_44: { b := b_44[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_12 = (*[12]byte)(b_44[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_12 = (*[12]byte)(b_44[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_12: h += n @@ -1789,59 +2952,117 @@ sz_12: sz_107: { b := b_107[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_75 = (*[75]byte)(b_107[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_75 = (*[75]byte)(b_107[32:]) } sz_75: { b := b_75[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_43 = (*[43]byte)(b_75[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_43 = (*[43]byte)(b_75[32:]) } sz_43: { b := b_43[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_11 = (*[11]byte)(b_43[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_11 = (*[11]byte)(b_43[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_11: h += n @@ -1850,59 +3071,117 @@ sz_11: sz_106: { b := b_106[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_74 = (*[74]byte)(b_106[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_74 = (*[74]byte)(b_106[32:]) } sz_74: { b := b_74[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_42 = (*[42]byte)(b_74[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_42 = (*[42]byte)(b_74[32:]) } sz_42: { b := b_42[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_10 = (*[10]byte)(b_42[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_10 = (*[10]byte)(b_42[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_10: h += n @@ -1911,59 +3190,117 @@ sz_10: sz_105: { b := b_105[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_73 = (*[73]byte)(b_105[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_73 = (*[73]byte)(b_105[32:]) } sz_73: { b := b_73[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_41 = (*[41]byte)(b_73[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_41 = (*[41]byte)(b_73[32:]) } sz_41: { b := b_41[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_9 = (*[9]byte)(b_41[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_9 = (*[9]byte)(b_41[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_9: h += n @@ -1972,59 +3309,117 @@ sz_9: sz_104: { b := b_104[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_72 = (*[72]byte)(b_104[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_72 = (*[72]byte)(b_104[32:]) } sz_72: { b := b_72[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_40 = (*[40]byte)(b_72[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_40 = (*[40]byte)(b_72[32:]) } sz_40: { b := b_40[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_8 = (*[8]byte)(b_40[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_8 = (*[8]byte)(b_40[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_8: h += n @@ -2033,59 +3428,117 @@ sz_8: sz_103: { b := b_103[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_71 = (*[71]byte)(b_103[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_71 = (*[71]byte)(b_103[32:]) } sz_71: { b := b_71[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_39 = (*[39]byte)(b_71[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_39 = (*[39]byte)(b_71[32:]) } sz_39: { b := b_39[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_7 = (*[7]byte)(b_39[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_7 = (*[7]byte)(b_39[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_7: h += n @@ -2094,59 +3547,117 @@ sz_7: sz_102: { b := b_102[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_70 = (*[70]byte)(b_102[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_70 = (*[70]byte)(b_102[32:]) } sz_70: { b := b_70[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_38 = (*[38]byte)(b_70[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_38 = (*[38]byte)(b_70[32:]) } sz_38: { b := b_38[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_6 = (*[6]byte)(b_38[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_6 = (*[6]byte)(b_38[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_6: h += n @@ -2155,59 +3666,117 @@ sz_6: sz_101: { b := b_101[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_69 = (*[69]byte)(b_101[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_69 = (*[69]byte)(b_101[32:]) } sz_69: { b := b_69[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_37 = (*[37]byte)(b_69[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_37 = (*[37]byte)(b_69[32:]) } sz_37: { b := b_37[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_5 = (*[5]byte)(b_37[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_5 = (*[5]byte)(b_37[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_5: h += n @@ -2216,59 +3785,117 @@ sz_5: sz_100: { b := b_100[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_68 = (*[68]byte)(b_100[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_68 = (*[68]byte)(b_100[32:]) } sz_68: { b := b_68[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_36 = (*[36]byte)(b_68[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_36 = (*[36]byte)(b_68[32:]) } sz_36: { b := b_36[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_4 = (*[4]byte)(b_36[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_4 = (*[4]byte)(b_36[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_4: h += n @@ -2277,59 +3904,117 @@ sz_4: sz_99: { b := b_99[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_67 = (*[67]byte)(b_99[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_67 = (*[67]byte)(b_99[32:]) } sz_67: { b := b_67[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_35 = (*[35]byte)(b_67[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_35 = (*[35]byte)(b_67[32:]) } sz_35: { b := b_35[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_3 = (*[3]byte)(b_35[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_3 = (*[3]byte)(b_35[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_3: h += n @@ -2338,59 +4023,117 @@ sz_3: sz_98: { b := b_98[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_66 = (*[66]byte)(b_98[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_66 = (*[66]byte)(b_98[32:]) } sz_66: { b := b_66[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_34 = (*[34]byte)(b_66[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_34 = (*[34]byte)(b_66[32:]) } sz_34: { b := b_34[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_2 = (*[2]byte)(b_34[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_2 = (*[2]byte)(b_34[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_2: h += n @@ -2399,59 +4142,117 @@ sz_2: sz_97: { b := b_97[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_65 = (*[65]byte)(b_97[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_65 = (*[65]byte)(b_97[32:]) } sz_65: { b := b_65[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_33 = (*[33]byte)(b_65[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_33 = (*[33]byte)(b_65[32:]) } sz_33: { b := b_33[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_1 = (*[1]byte)(b_33[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_1 = (*[1]byte)(b_33[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } sz_1: h += n @@ -2460,59 +4261,117 @@ sz_1: sz_96: { b := b_96[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_64 = (*[64]byte)(b_96[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_64 = (*[64]byte)(b_96[32:]) } sz_64: { b := b_64[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_32 = (*[32]byte)(b_64[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_32 = (*[32]byte)(b_64[32:]) } sz_32: { b := b_32[:] - load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. + var load uint64 + load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v1 = round(v1, load) + v1 += load * prime2 + v1 = bits.RotateLeft64(v1, 31) + v1 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v2 = round(v2, load) + v2 += load * prime2 + v2 = bits.RotateLeft64(v2, 31) + v2 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. b = b[8:] - v3 = round(v3, load) + v3 += load * prime2 + v3 = bits.RotateLeft64(v3, 31) + v3 *= prime1 load = uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - v4 = round(v4, load) - b_0 = (*[0]byte)(b_32[32:]) + b = b[8:] + v4 += load * prime2 + v4 = bits.RotateLeft64(v4, 31) + v4 *= prime1 +b_0 = (*[0]byte)(b_32[32:]) } - h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4) - h = mergeRound(h, v1) - h = mergeRound(h, v2) - h = mergeRound(h, v3) - h = mergeRound(h, v4) + h = bits.RotateLeft64(v1, 1) + bits.RotateLeft64(v2, 7) + bits.RotateLeft64(v3, 12) + bits.RotateLeft64(v4, 18) + { + var temp uint64 + temp += v1 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v2 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v3 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } + { + var temp uint64 + temp += v4 * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 + h ^= temp + h = h*prime1 + prime4 + } h += n goto sz_0l @@ -2522,8 +4381,12 @@ sz_31l: { b := b_31[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_23 = (*[23]byte)(b_31[8:]) } @@ -2531,8 +4394,12 @@ sz_23l: { b := b_23[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_15 = (*[15]byte)(b_23[8:]) } @@ -2540,8 +4407,12 @@ sz_15l: { b := b_15[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_7 = (*[7]byte)(b_15[8:]) } @@ -2551,8 +4422,12 @@ sz_30l: { b := b_30[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_22 = (*[22]byte)(b_30[8:]) } @@ -2560,8 +4435,12 @@ sz_22l: { b := b_22[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_14 = (*[14]byte)(b_22[8:]) } @@ -2569,8 +4448,12 @@ sz_14l: { b := b_14[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_6 = (*[6]byte)(b_14[8:]) } @@ -2580,8 +4463,12 @@ sz_29l: { b := b_29[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_21 = (*[21]byte)(b_29[8:]) } @@ -2589,8 +4476,12 @@ sz_21l: { b := b_21[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_13 = (*[13]byte)(b_21[8:]) } @@ -2598,8 +4489,12 @@ sz_13l: { b := b_13[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_5 = (*[5]byte)(b_13[8:]) } @@ -2609,8 +4504,12 @@ sz_28l: { b := b_28[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_20 = (*[20]byte)(b_28[8:]) } @@ -2618,8 +4517,12 @@ sz_20l: { b := b_20[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_12 = (*[12]byte)(b_20[8:]) } @@ -2627,8 +4530,12 @@ sz_12l: { b := b_12[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_4 = (*[4]byte)(b_12[8:]) } @@ -2638,8 +4545,12 @@ sz_27l: { b := b_27[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_19 = (*[19]byte)(b_27[8:]) } @@ -2647,8 +4558,12 @@ sz_19l: { b := b_19[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_11 = (*[11]byte)(b_19[8:]) } @@ -2656,8 +4571,12 @@ sz_11l: { b := b_11[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_3 = (*[3]byte)(b_11[8:]) } @@ -2667,8 +4586,12 @@ sz_26l: { b := b_26[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_18 = (*[18]byte)(b_26[8:]) } @@ -2676,8 +4599,12 @@ sz_18l: { b := b_18[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_10 = (*[10]byte)(b_18[8:]) } @@ -2685,8 +4612,12 @@ sz_10l: { b := b_10[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_2 = (*[2]byte)(b_10[8:]) } @@ -2696,8 +4627,12 @@ sz_25l: { b := b_25[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_17 = (*[17]byte)(b_25[8:]) } @@ -2705,8 +4640,12 @@ sz_17l: { b := b_17[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_9 = (*[9]byte)(b_17[8:]) } @@ -2714,8 +4653,12 @@ sz_9l: { b := b_9[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_1 = (*[1]byte)(b_9[8:]) } @@ -2725,8 +4668,12 @@ sz_24l: { b := b_24[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_16 = (*[16]byte)(b_24[8:]) } @@ -2734,8 +4681,12 @@ sz_16l: { b := b_16[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_8 = (*[8]byte)(b_16[8:]) } @@ -2743,8 +4694,12 @@ sz_8l: { b := b_8[:] load := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 // Work around for go.dev/issue/68081. - h ^= round(0, load) - h = rol27(h)*prime1 + prime4 + var temp uint64 + temp += load * prime2 + temp = bits.RotateLeft64(temp, 31) + temp *= prime1 +h ^= temp + h = bits.RotateLeft64(h, 27)*prime1 + prime4 b_0 = (*[0]byte)(b_8[8:]) } @@ -2756,7 +4711,7 @@ sz_7l: b := b_7[:] load := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 // Work around for go.dev/issue/68081. h ^= uint64(load) * prime1 - h = rol23(h)*prime2 + prime3 + h = bits.RotateLeft64(h, 23)*prime2 + prime3 b_3 = (*[3]byte)(b_7[4:]) goto sz_3l } @@ -2766,7 +4721,7 @@ sz_6l: b := b_6[:] load := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 // Work around for go.dev/issue/68081. h ^= uint64(load) * prime1 - h = rol23(h)*prime2 + prime3 + h = bits.RotateLeft64(h, 23)*prime2 + prime3 b_2 = (*[2]byte)(b_6[4:]) goto sz_2l } @@ -2776,7 +4731,7 @@ sz_5l: b := b_5[:] load := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 // Work around for go.dev/issue/68081. h ^= uint64(load) * prime1 - h = rol23(h)*prime2 + prime3 + h = bits.RotateLeft64(h, 23)*prime2 + prime3 b_1 = (*[1]byte)(b_5[4:]) goto sz_1l } @@ -2786,7 +4741,7 @@ sz_4l: b := b_4[:] load := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 // Work around for go.dev/issue/68081. h ^= uint64(load) * prime1 - h = rol23(h)*prime2 + prime3 + h = bits.RotateLeft64(h, 23)*prime2 + prime3 b_0 = (*[0]byte)(b_4[4:]) goto sz_0l } @@ -2794,17 +4749,17 @@ sz_4l: // This is the 1 bytes trailing slide. sz_3l: h ^= uint64(b_3[0]) * prime5 - h = rol11(h) * prime1 + h = bits.RotateLeft64(h, 11) * prime1 b_2 = (*[2]byte)(b_3[1:]) sz_2l: h ^= uint64(b_2[0]) * prime5 - h = rol11(h) * prime1 + h = bits.RotateLeft64(h, 11) * prime1 b_1 = (*[1]byte)(b_2[1:]) sz_1l: h ^= uint64(b_1[0]) * prime5 - h = rol11(h) * prime1 + h = bits.RotateLeft64(h, 11) * prime1 b_0 = (*[0]byte)(b_1[1:]) // Finally the terminator.