OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / minio / blake2b-simd / compress_generic.go
diff --git a/vendor/github.com/minio/blake2b-simd/compress_generic.go b/vendor/github.com/minio/blake2b-simd/compress_generic.go
deleted file mode 100644 (file)
index e9e16e8..0000000
+++ /dev/null
@@ -1,1419 +0,0 @@
-// Written in 2012 by Dmitry Chestnykh.
-//
-// To the extent possible under law, the author have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-// http://creativecommons.org/publicdomain/zero/1.0/
-
-package blake2b
-
-func compressGeneric(d *digest, p []uint8) {
-       h0, h1, h2, h3, h4, h5, h6, h7 := d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7]
-
-       for len(p) >= BlockSize {
-               // Increment counter.
-               d.t[0] += BlockSize
-               if d.t[0] < BlockSize {
-                       d.t[1]++
-               }
-               // Initialize compression function.
-               v0, v1, v2, v3, v4, v5, v6, v7 := h0, h1, h2, h3, h4, h5, h6, h7
-               v8 := iv[0]
-               v9 := iv[1]
-               v10 := iv[2]
-               v11 := iv[3]
-               v12 := iv[4] ^ d.t[0]
-               v13 := iv[5] ^ d.t[1]
-               v14 := iv[6] ^ d.f[0]
-               v15 := iv[7] ^ d.f[1]
-
-               j := 0
-               var m [16]uint64
-               for i := range m {
-                       m[i] = uint64(p[j]) | uint64(p[j+1])<<8 | uint64(p[j+2])<<16 |
-                               uint64(p[j+3])<<24 | uint64(p[j+4])<<32 | uint64(p[j+5])<<40 |
-                               uint64(p[j+6])<<48 | uint64(p[j+7])<<56
-                       j += 8
-               }
-
-               // Round 1.
-               v0 += m[0]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[2]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[4]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[6]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[5]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[7]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[3]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[1]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[8]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[10]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[12]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[14]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[13]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[15]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[11]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[9]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 2.
-               v0 += m[14]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[4]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[9]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[13]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[15]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[6]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[8]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[10]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[1]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[0]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[11]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[5]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[7]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[3]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[2]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[12]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 3.
-               v0 += m[11]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[12]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[5]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[15]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[2]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[13]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[0]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[8]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[10]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[3]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[7]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[9]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[1]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[4]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[6]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[14]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 4.
-               v0 += m[7]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[3]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[13]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[11]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[12]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[14]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[1]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[9]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[2]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[5]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[4]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[15]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[0]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[8]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[10]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[6]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 5.
-               v0 += m[9]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[5]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[2]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[10]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[4]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[15]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[7]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[0]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[14]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[11]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[6]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[3]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[8]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[13]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[12]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[1]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 6.
-               v0 += m[2]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[6]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[0]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[8]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[11]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[3]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[10]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[12]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[4]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[7]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[15]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[1]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[14]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[9]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[5]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[13]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 7.
-               v0 += m[12]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[1]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[14]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[4]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[13]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[10]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[15]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[5]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[0]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[6]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[9]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[8]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[2]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[11]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[3]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[7]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 8.
-               v0 += m[13]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[7]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[12]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[3]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[1]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[9]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[14]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[11]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[5]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[15]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[8]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[2]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[6]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[10]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[4]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[0]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 9.
-               v0 += m[6]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[14]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[11]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[0]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[3]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[8]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[9]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[15]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[12]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[13]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[1]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[10]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[4]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[5]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[7]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[2]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 10.
-               v0 += m[10]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[8]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[7]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[1]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[6]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[5]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[4]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[2]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[15]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[9]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[3]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[13]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[12]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[0]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[14]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[11]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 11.
-               v0 += m[0]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[2]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[4]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[6]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[5]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[7]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[3]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[1]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[8]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[10]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[12]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[14]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[13]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[15]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[11]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[9]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               // Round 12.
-               v0 += m[14]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-32) | v12>>32
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-24) | v4>>24
-               v1 += m[4]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-32) | v13>>32
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-24) | v5>>24
-               v2 += m[9]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-32) | v14>>32
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-24) | v6>>24
-               v3 += m[13]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-32) | v15>>32
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-24) | v7>>24
-               v2 += m[15]
-               v2 += v6
-               v14 ^= v2
-               v14 = v14<<(64-16) | v14>>16
-               v10 += v14
-               v6 ^= v10
-               v6 = v6<<(64-63) | v6>>63
-               v3 += m[6]
-               v3 += v7
-               v15 ^= v3
-               v15 = v15<<(64-16) | v15>>16
-               v11 += v15
-               v7 ^= v11
-               v7 = v7<<(64-63) | v7>>63
-               v1 += m[8]
-               v1 += v5
-               v13 ^= v1
-               v13 = v13<<(64-16) | v13>>16
-               v9 += v13
-               v5 ^= v9
-               v5 = v5<<(64-63) | v5>>63
-               v0 += m[10]
-               v0 += v4
-               v12 ^= v0
-               v12 = v12<<(64-16) | v12>>16
-               v8 += v12
-               v4 ^= v8
-               v4 = v4<<(64-63) | v4>>63
-               v0 += m[1]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-32) | v15>>32
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-24) | v5>>24
-               v1 += m[0]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-32) | v12>>32
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-24) | v6>>24
-               v2 += m[11]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-32) | v13>>32
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-24) | v7>>24
-               v3 += m[5]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-32) | v14>>32
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-24) | v4>>24
-               v2 += m[7]
-               v2 += v7
-               v13 ^= v2
-               v13 = v13<<(64-16) | v13>>16
-               v8 += v13
-               v7 ^= v8
-               v7 = v7<<(64-63) | v7>>63
-               v3 += m[3]
-               v3 += v4
-               v14 ^= v3
-               v14 = v14<<(64-16) | v14>>16
-               v9 += v14
-               v4 ^= v9
-               v4 = v4<<(64-63) | v4>>63
-               v1 += m[2]
-               v1 += v6
-               v12 ^= v1
-               v12 = v12<<(64-16) | v12>>16
-               v11 += v12
-               v6 ^= v11
-               v6 = v6<<(64-63) | v6>>63
-               v0 += m[12]
-               v0 += v5
-               v15 ^= v0
-               v15 = v15<<(64-16) | v15>>16
-               v10 += v15
-               v5 ^= v10
-               v5 = v5<<(64-63) | v5>>63
-
-               h0 ^= v0 ^ v8
-               h1 ^= v1 ^ v9
-               h2 ^= v2 ^ v10
-               h3 ^= v3 ^ v11
-               h4 ^= v4 ^ v12
-               h5 ^= v5 ^ v13
-               h6 ^= v6 ^ v14
-               h7 ^= v7 ^ v15
-
-               p = p[BlockSize:]
-       }
-       d.h[0], d.h[1], d.h[2], d.h[3], d.h[4], d.h[5], d.h[6], d.h[7] = h0, h1, h2, h3, h4, h5, h6, h7
-}