2 * Copyright 2004-2022 The OpenSSL Project Authors. All Rights Reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * https://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * Portions Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de>
19 * - modified assembly to fit into OpenZFS
25 #include <sys/asm_linkage.h>
32 .quad 0x428a2f98d728ae22,0x7137449123ef65cd
33 .quad 0x428a2f98d728ae22,0x7137449123ef65cd
34 .quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
35 .quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
36 .quad 0x3956c25bf348b538,0x59f111f1b605d019
37 .quad 0x3956c25bf348b538,0x59f111f1b605d019
38 .quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
39 .quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
40 .quad 0xd807aa98a3030242,0x12835b0145706fbe
41 .quad 0xd807aa98a3030242,0x12835b0145706fbe
42 .quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
43 .quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
44 .quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
45 .quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
46 .quad 0x9bdc06a725c71235,0xc19bf174cf692694
47 .quad 0x9bdc06a725c71235,0xc19bf174cf692694
48 .quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
49 .quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
50 .quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
51 .quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
52 .quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
53 .quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
54 .quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
55 .quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
56 .quad 0x983e5152ee66dfab,0xa831c66d2db43210
57 .quad 0x983e5152ee66dfab,0xa831c66d2db43210
58 .quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
59 .quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
60 .quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
61 .quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
62 .quad 0x06ca6351e003826f,0x142929670a0e6e70
63 .quad 0x06ca6351e003826f,0x142929670a0e6e70
64 .quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
65 .quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
66 .quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
67 .quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
68 .quad 0x650a73548baf63de,0x766a0abb3c77b2a8
69 .quad 0x650a73548baf63de,0x766a0abb3c77b2a8
70 .quad 0x81c2c92e47edaee6,0x92722c851482353b
71 .quad 0x81c2c92e47edaee6,0x92722c851482353b
72 .quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
73 .quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
74 .quad 0xc24b8b70d0f89791,0xc76c51a30654be30
75 .quad 0xc24b8b70d0f89791,0xc76c51a30654be30
76 .quad 0xd192e819d6ef5218,0xd69906245565a910
77 .quad 0xd192e819d6ef5218,0xd69906245565a910
78 .quad 0xf40e35855771202a,0x106aa07032bbd1b8
79 .quad 0xf40e35855771202a,0x106aa07032bbd1b8
80 .quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
81 .quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
82 .quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
83 .quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
84 .quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
85 .quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
86 .quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
87 .quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
88 .quad 0x748f82ee5defb2fc,0x78a5636f43172f60
89 .quad 0x748f82ee5defb2fc,0x78a5636f43172f60
90 .quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
91 .quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
92 .quad 0x90befffa23631e28,0xa4506cebde82bde9
93 .quad 0x90befffa23631e28,0xa4506cebde82bde9
94 .quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
95 .quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
96 .quad 0xca273eceea26619c,0xd186b8c721c0c207
97 .quad 0xca273eceea26619c,0xd186b8c721c0c207
98 .quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
99 .quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
100 .quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
101 .quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
102 .quad 0x113f9804bef90dae,0x1b710b35131c471b
103 .quad 0x113f9804bef90dae,0x1b710b35131c471b
104 .quad 0x28db77f523047d84,0x32caab7b40c72493
105 .quad 0x28db77f523047d84,0x32caab7b40c72493
106 .quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
107 .quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
108 .quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
109 .quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
110 .quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
111 .quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
112 .quad 0x0001020304050607,0x08090a0b0c0d0e0f
113 .quad 0x0001020304050607,0x08090a0b0c0d0e0f
115 ENTRY_ALIGN(zfs_sha512_transform_x64, 16)
119 .cfi_def_cfa_register %rax
134 leaq (%rsi,%rdx,8),%rdx
136 movq %rdi,128+0(%rsp)
137 movq %rsi,128+8(%rsp)
138 movq %rdx,128+16(%rsp)
140 .cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
1424 movq 128+0(%rsp),%rdi
1435 cmpq 128+16(%rsp),%rsi
1460 .cfi_def_cfa_register %rsp
1464 SET_SIZE(zfs_sha512_transform_x64)
1466 ENTRY_ALIGN(zfs_sha512_transform_avx, 64)
1470 .cfi_def_cfa_register %rax
1472 .cfi_offset %rbx,-16
1474 .cfi_offset %rbp,-24
1476 .cfi_offset %r12,-32
1478 .cfi_offset %r13,-40
1480 .cfi_offset %r14,-48
1482 .cfi_offset %r15,-56
1485 leaq (%rsi,%rdx,8),%rdx
1487 movq %rdi,128+0(%rsp)
1488 movq %rsi,128+8(%rsp)
1489 movq %rdx,128+16(%rsp)
1491 .cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
1506 vmovdqa K512+1280(%rip),%xmm11
1507 vmovdqu 0(%rsi),%xmm0
1508 leaq K512+128(%rip),%rbp
1509 vmovdqu 16(%rsi),%xmm1
1510 vmovdqu 32(%rsi),%xmm2
1511 vpshufb %xmm11,%xmm0,%xmm0
1512 vmovdqu 48(%rsi),%xmm3
1513 vpshufb %xmm11,%xmm1,%xmm1
1514 vmovdqu 64(%rsi),%xmm4
1515 vpshufb %xmm11,%xmm2,%xmm2
1516 vmovdqu 80(%rsi),%xmm5
1517 vpshufb %xmm11,%xmm3,%xmm3
1518 vmovdqu 96(%rsi),%xmm6
1519 vpshufb %xmm11,%xmm4,%xmm4
1520 vmovdqu 112(%rsi),%xmm7
1521 vpshufb %xmm11,%xmm5,%xmm5
1522 vpaddq -128(%rbp),%xmm0,%xmm8
1523 vpshufb %xmm11,%xmm6,%xmm6
1524 vpaddq -96(%rbp),%xmm1,%xmm9
1525 vpshufb %xmm11,%xmm7,%xmm7
1526 vpaddq -64(%rbp),%xmm2,%xmm10
1527 vpaddq -32(%rbp),%xmm3,%xmm11
1528 vmovdqa %xmm8,0(%rsp)
1529 vpaddq 0(%rbp),%xmm4,%xmm8
1530 vmovdqa %xmm9,16(%rsp)
1531 vpaddq 32(%rbp),%xmm5,%xmm9
1532 vmovdqa %xmm10,32(%rsp)
1533 vpaddq 64(%rbp),%xmm6,%xmm10
1534 vmovdqa %xmm11,48(%rsp)
1535 vpaddq 96(%rbp),%xmm7,%xmm11
1536 vmovdqa %xmm8,64(%rsp)
1538 vmovdqa %xmm9,80(%rsp)
1540 vmovdqa %xmm10,96(%rsp)
1542 vmovdqa %xmm11,112(%rsp)
1549 vpalignr $8,%xmm0,%xmm1,%xmm8
1552 vpalignr $8,%xmm4,%xmm5,%xmm11
1555 vpsrlq $1,%xmm8,%xmm10
1558 vpaddq %xmm11,%xmm0,%xmm0
1561 vpsrlq $7,%xmm8,%xmm11
1564 vpsllq $56,%xmm8,%xmm9
1567 vpxor %xmm10,%xmm11,%xmm8
1570 vpsrlq $7,%xmm10,%xmm10
1573 vpxor %xmm9,%xmm8,%xmm8
1576 vpsllq $7,%xmm9,%xmm9
1579 vpxor %xmm10,%xmm8,%xmm8
1582 vpsrlq $6,%xmm7,%xmm11
1585 vpxor %xmm9,%xmm8,%xmm8
1588 vpsllq $3,%xmm7,%xmm10
1591 vpaddq %xmm8,%xmm0,%xmm0
1594 vpsrlq $19,%xmm7,%xmm9
1597 vpxor %xmm10,%xmm11,%xmm11
1600 vpsllq $42,%xmm10,%xmm10
1603 vpxor %xmm9,%xmm11,%xmm11
1606 vpsrlq $42,%xmm9,%xmm9
1609 vpxor %xmm10,%xmm11,%xmm11
1612 vpxor %xmm9,%xmm11,%xmm11
1615 vpaddq %xmm11,%xmm0,%xmm0
1618 vpaddq -128(%rbp),%xmm0,%xmm10
1625 vmovdqa %xmm10,0(%rsp)
1626 vpalignr $8,%xmm1,%xmm2,%xmm8
1629 vpalignr $8,%xmm5,%xmm6,%xmm11
1632 vpsrlq $1,%xmm8,%xmm10
1635 vpaddq %xmm11,%xmm1,%xmm1
1638 vpsrlq $7,%xmm8,%xmm11
1641 vpsllq $56,%xmm8,%xmm9
1644 vpxor %xmm10,%xmm11,%xmm8
1647 vpsrlq $7,%xmm10,%xmm10
1650 vpxor %xmm9,%xmm8,%xmm8
1653 vpsllq $7,%xmm9,%xmm9
1656 vpxor %xmm10,%xmm8,%xmm8
1659 vpsrlq $6,%xmm0,%xmm11
1662 vpxor %xmm9,%xmm8,%xmm8
1665 vpsllq $3,%xmm0,%xmm10
1668 vpaddq %xmm8,%xmm1,%xmm1
1671 vpsrlq $19,%xmm0,%xmm9
1674 vpxor %xmm10,%xmm11,%xmm11
1677 vpsllq $42,%xmm10,%xmm10
1680 vpxor %xmm9,%xmm11,%xmm11
1683 vpsrlq $42,%xmm9,%xmm9
1686 vpxor %xmm10,%xmm11,%xmm11
1689 vpxor %xmm9,%xmm11,%xmm11
1692 vpaddq %xmm11,%xmm1,%xmm1
1695 vpaddq -96(%rbp),%xmm1,%xmm10
1702 vmovdqa %xmm10,16(%rsp)
1703 vpalignr $8,%xmm2,%xmm3,%xmm8
1706 vpalignr $8,%xmm6,%xmm7,%xmm11
1709 vpsrlq $1,%xmm8,%xmm10
1712 vpaddq %xmm11,%xmm2,%xmm2
1715 vpsrlq $7,%xmm8,%xmm11
1718 vpsllq $56,%xmm8,%xmm9
1721 vpxor %xmm10,%xmm11,%xmm8
1724 vpsrlq $7,%xmm10,%xmm10
1727 vpxor %xmm9,%xmm8,%xmm8
1730 vpsllq $7,%xmm9,%xmm9
1733 vpxor %xmm10,%xmm8,%xmm8
1736 vpsrlq $6,%xmm1,%xmm11
1739 vpxor %xmm9,%xmm8,%xmm8
1742 vpsllq $3,%xmm1,%xmm10
1745 vpaddq %xmm8,%xmm2,%xmm2
1748 vpsrlq $19,%xmm1,%xmm9
1751 vpxor %xmm10,%xmm11,%xmm11
1754 vpsllq $42,%xmm10,%xmm10
1757 vpxor %xmm9,%xmm11,%xmm11
1760 vpsrlq $42,%xmm9,%xmm9
1763 vpxor %xmm10,%xmm11,%xmm11
1766 vpxor %xmm9,%xmm11,%xmm11
1769 vpaddq %xmm11,%xmm2,%xmm2
1772 vpaddq -64(%rbp),%xmm2,%xmm10
1779 vmovdqa %xmm10,32(%rsp)
1780 vpalignr $8,%xmm3,%xmm4,%xmm8
1783 vpalignr $8,%xmm7,%xmm0,%xmm11
1786 vpsrlq $1,%xmm8,%xmm10
1789 vpaddq %xmm11,%xmm3,%xmm3
1792 vpsrlq $7,%xmm8,%xmm11
1795 vpsllq $56,%xmm8,%xmm9
1798 vpxor %xmm10,%xmm11,%xmm8
1801 vpsrlq $7,%xmm10,%xmm10
1804 vpxor %xmm9,%xmm8,%xmm8
1807 vpsllq $7,%xmm9,%xmm9
1810 vpxor %xmm10,%xmm8,%xmm8
1813 vpsrlq $6,%xmm2,%xmm11
1816 vpxor %xmm9,%xmm8,%xmm8
1819 vpsllq $3,%xmm2,%xmm10
1822 vpaddq %xmm8,%xmm3,%xmm3
1825 vpsrlq $19,%xmm2,%xmm9
1828 vpxor %xmm10,%xmm11,%xmm11
1831 vpsllq $42,%xmm10,%xmm10
1834 vpxor %xmm9,%xmm11,%xmm11
1837 vpsrlq $42,%xmm9,%xmm9
1840 vpxor %xmm10,%xmm11,%xmm11
1843 vpxor %xmm9,%xmm11,%xmm11
1846 vpaddq %xmm11,%xmm3,%xmm3
1849 vpaddq -32(%rbp),%xmm3,%xmm10
1856 vmovdqa %xmm10,48(%rsp)
1857 vpalignr $8,%xmm4,%xmm5,%xmm8
1860 vpalignr $8,%xmm0,%xmm1,%xmm11
1863 vpsrlq $1,%xmm8,%xmm10
1866 vpaddq %xmm11,%xmm4,%xmm4
1869 vpsrlq $7,%xmm8,%xmm11
1872 vpsllq $56,%xmm8,%xmm9
1875 vpxor %xmm10,%xmm11,%xmm8
1878 vpsrlq $7,%xmm10,%xmm10
1881 vpxor %xmm9,%xmm8,%xmm8
1884 vpsllq $7,%xmm9,%xmm9
1887 vpxor %xmm10,%xmm8,%xmm8
1890 vpsrlq $6,%xmm3,%xmm11
1893 vpxor %xmm9,%xmm8,%xmm8
1896 vpsllq $3,%xmm3,%xmm10
1899 vpaddq %xmm8,%xmm4,%xmm4
1902 vpsrlq $19,%xmm3,%xmm9
1905 vpxor %xmm10,%xmm11,%xmm11
1908 vpsllq $42,%xmm10,%xmm10
1911 vpxor %xmm9,%xmm11,%xmm11
1914 vpsrlq $42,%xmm9,%xmm9
1917 vpxor %xmm10,%xmm11,%xmm11
1920 vpxor %xmm9,%xmm11,%xmm11
1923 vpaddq %xmm11,%xmm4,%xmm4
1926 vpaddq 0(%rbp),%xmm4,%xmm10
1933 vmovdqa %xmm10,64(%rsp)
1934 vpalignr $8,%xmm5,%xmm6,%xmm8
1937 vpalignr $8,%xmm1,%xmm2,%xmm11
1940 vpsrlq $1,%xmm8,%xmm10
1943 vpaddq %xmm11,%xmm5,%xmm5
1946 vpsrlq $7,%xmm8,%xmm11
1949 vpsllq $56,%xmm8,%xmm9
1952 vpxor %xmm10,%xmm11,%xmm8
1955 vpsrlq $7,%xmm10,%xmm10
1958 vpxor %xmm9,%xmm8,%xmm8
1961 vpsllq $7,%xmm9,%xmm9
1964 vpxor %xmm10,%xmm8,%xmm8
1967 vpsrlq $6,%xmm4,%xmm11
1970 vpxor %xmm9,%xmm8,%xmm8
1973 vpsllq $3,%xmm4,%xmm10
1976 vpaddq %xmm8,%xmm5,%xmm5
1979 vpsrlq $19,%xmm4,%xmm9
1982 vpxor %xmm10,%xmm11,%xmm11
1985 vpsllq $42,%xmm10,%xmm10
1988 vpxor %xmm9,%xmm11,%xmm11
1991 vpsrlq $42,%xmm9,%xmm9
1994 vpxor %xmm10,%xmm11,%xmm11
1997 vpxor %xmm9,%xmm11,%xmm11
2000 vpaddq %xmm11,%xmm5,%xmm5
2003 vpaddq 32(%rbp),%xmm5,%xmm10
2010 vmovdqa %xmm10,80(%rsp)
2011 vpalignr $8,%xmm6,%xmm7,%xmm8
2014 vpalignr $8,%xmm2,%xmm3,%xmm11
2017 vpsrlq $1,%xmm8,%xmm10
2020 vpaddq %xmm11,%xmm6,%xmm6
2023 vpsrlq $7,%xmm8,%xmm11
2026 vpsllq $56,%xmm8,%xmm9
2029 vpxor %xmm10,%xmm11,%xmm8
2032 vpsrlq $7,%xmm10,%xmm10
2035 vpxor %xmm9,%xmm8,%xmm8
2038 vpsllq $7,%xmm9,%xmm9
2041 vpxor %xmm10,%xmm8,%xmm8
2044 vpsrlq $6,%xmm5,%xmm11
2047 vpxor %xmm9,%xmm8,%xmm8
2050 vpsllq $3,%xmm5,%xmm10
2053 vpaddq %xmm8,%xmm6,%xmm6
2056 vpsrlq $19,%xmm5,%xmm9
2059 vpxor %xmm10,%xmm11,%xmm11
2062 vpsllq $42,%xmm10,%xmm10
2065 vpxor %xmm9,%xmm11,%xmm11
2068 vpsrlq $42,%xmm9,%xmm9
2071 vpxor %xmm10,%xmm11,%xmm11
2074 vpxor %xmm9,%xmm11,%xmm11
2077 vpaddq %xmm11,%xmm6,%xmm6
2080 vpaddq 64(%rbp),%xmm6,%xmm10
2087 vmovdqa %xmm10,96(%rsp)
2088 vpalignr $8,%xmm7,%xmm0,%xmm8
2091 vpalignr $8,%xmm3,%xmm4,%xmm11
2094 vpsrlq $1,%xmm8,%xmm10
2097 vpaddq %xmm11,%xmm7,%xmm7
2100 vpsrlq $7,%xmm8,%xmm11
2103 vpsllq $56,%xmm8,%xmm9
2106 vpxor %xmm10,%xmm11,%xmm8
2109 vpsrlq $7,%xmm10,%xmm10
2112 vpxor %xmm9,%xmm8,%xmm8
2115 vpsllq $7,%xmm9,%xmm9
2118 vpxor %xmm10,%xmm8,%xmm8
2121 vpsrlq $6,%xmm6,%xmm11
2124 vpxor %xmm9,%xmm8,%xmm8
2127 vpsllq $3,%xmm6,%xmm10
2130 vpaddq %xmm8,%xmm7,%xmm7
2133 vpsrlq $19,%xmm6,%xmm9
2136 vpxor %xmm10,%xmm11,%xmm11
2139 vpsllq $42,%xmm10,%xmm10
2142 vpxor %xmm9,%xmm11,%xmm11
2145 vpsrlq $42,%xmm9,%xmm9
2148 vpxor %xmm10,%xmm11,%xmm11
2151 vpxor %xmm9,%xmm11,%xmm11
2154 vpaddq %xmm11,%xmm7,%xmm7
2157 vpaddq 96(%rbp),%xmm7,%xmm10
2164 vmovdqa %xmm10,112(%rsp)
2583 movq 128+0(%rsp),%rdi
2596 cmpq 128+16(%rsp),%rsi
2624 .cfi_def_cfa_register %rsp
2628 SET_SIZE(zfs_sha512_transform_avx)
2630 ENTRY_ALIGN(zfs_sha512_transform_avx2, 64)
2634 .cfi_def_cfa_register %rax
2636 .cfi_offset %rbx,-16
2638 .cfi_offset %rbp,-24
2640 .cfi_offset %r12,-32
2642 .cfi_offset %r13,-40
2644 .cfi_offset %r14,-48
2646 .cfi_offset %r15,-56
2650 leaq (%rsi,%rdx,8),%rdx
2652 movq %rdi,128+0(%rsp)
2653 movq %rsi,128+8(%rsp)
2654 movq %rdx,128+16(%rsp)
2656 .cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
2675 vmovdqu -128(%rsi),%xmm0
2676 vmovdqu -128+16(%rsi),%xmm1
2677 vmovdqu -128+32(%rsi),%xmm2
2678 leaq K512+128(%rip),%rbp
2679 vmovdqu -128+48(%rsi),%xmm3
2680 vmovdqu -128+64(%rsi),%xmm4
2681 vmovdqu -128+80(%rsi),%xmm5
2682 vmovdqu -128+96(%rsi),%xmm6
2683 vmovdqu -128+112(%rsi),%xmm7
2685 vmovdqa 1152(%rbp),%ymm10
2686 vinserti128 $1,(%r12),%ymm0,%ymm0
2687 vinserti128 $1,16(%r12),%ymm1,%ymm1
2688 vpshufb %ymm10,%ymm0,%ymm0
2689 vinserti128 $1,32(%r12),%ymm2,%ymm2
2690 vpshufb %ymm10,%ymm1,%ymm1
2691 vinserti128 $1,48(%r12),%ymm3,%ymm3
2692 vpshufb %ymm10,%ymm2,%ymm2
2693 vinserti128 $1,64(%r12),%ymm4,%ymm4
2694 vpshufb %ymm10,%ymm3,%ymm3
2695 vinserti128 $1,80(%r12),%ymm5,%ymm5
2696 vpshufb %ymm10,%ymm4,%ymm4
2697 vinserti128 $1,96(%r12),%ymm6,%ymm6
2698 vpshufb %ymm10,%ymm5,%ymm5
2699 vinserti128 $1,112(%r12),%ymm7,%ymm7
2701 vpaddq -128(%rbp),%ymm0,%ymm8
2702 vpshufb %ymm10,%ymm6,%ymm6
2703 vpaddq -96(%rbp),%ymm1,%ymm9
2704 vpshufb %ymm10,%ymm7,%ymm7
2705 vpaddq -64(%rbp),%ymm2,%ymm10
2706 vpaddq -32(%rbp),%ymm3,%ymm11
2707 vmovdqa %ymm8,0(%rsp)
2708 vpaddq 0(%rbp),%ymm4,%ymm8
2709 vmovdqa %ymm9,32(%rsp)
2710 vpaddq 32(%rbp),%ymm5,%ymm9
2711 vmovdqa %ymm10,64(%rsp)
2712 vpaddq 64(%rbp),%ymm6,%ymm10
2713 vmovdqa %ymm11,96(%rsp)
2717 leaq -128(%rsp),%rsp
2722 .cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
2723 vpaddq 96(%rbp),%ymm7,%ymm11
2724 vmovdqa %ymm8,0(%rsp)
2726 vmovdqa %ymm9,32(%rsp)
2728 vmovdqa %ymm10,64(%rsp)
2730 vmovdqa %ymm11,96(%rsp)
2737 leaq -128(%rsp),%rsp
2738 .cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
2741 .cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08
2743 .cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
2744 vpalignr $8,%ymm0,%ymm1,%ymm8
2745 addq 0+256(%rsp),%r11
2748 vpalignr $8,%ymm4,%ymm5,%ymm11
2750 leaq (%rax,%r14,1),%rax
2751 leaq (%r11,%r12,1),%r11
2752 vpsrlq $1,%ymm8,%ymm10
2756 vpaddq %ymm11,%ymm0,%ymm0
2757 vpsrlq $7,%ymm8,%ymm11
2758 leaq (%r11,%r12,1),%r11
2761 vpsllq $56,%ymm8,%ymm9
2762 vpxor %ymm10,%ymm11,%ymm8
2764 leaq (%r11,%r13,1),%r11
2766 vpsrlq $7,%ymm10,%ymm10
2767 vpxor %ymm9,%ymm8,%ymm8
2770 leaq (%rdx,%r11,1),%rdx
2771 vpsllq $7,%ymm9,%ymm9
2772 vpxor %ymm10,%ymm8,%ymm8
2776 vpsrlq $6,%ymm7,%ymm11
2777 vpxor %ymm9,%ymm8,%ymm8
2779 leaq (%r11,%rdi,1),%r11
2781 vpsllq $3,%ymm7,%ymm10
2782 vpaddq %ymm8,%ymm0,%ymm0
2783 addq 8+256(%rsp),%r10
2786 vpsrlq $19,%ymm7,%ymm9
2787 vpxor %ymm10,%ymm11,%ymm11
2789 leaq (%r11,%r14,1),%r11
2790 leaq (%r10,%r12,1),%r10
2791 vpsllq $42,%ymm10,%ymm10
2792 vpxor %ymm9,%ymm11,%ymm11
2796 vpsrlq $42,%ymm9,%ymm9
2797 vpxor %ymm10,%ymm11,%ymm11
2798 leaq (%r10,%r12,1),%r10
2801 vpxor %ymm9,%ymm11,%ymm11
2803 leaq (%r10,%r13,1),%r10
2805 vpaddq %ymm11,%ymm0,%ymm0
2808 leaq (%rcx,%r10,1),%rcx
2809 vpaddq -128(%rbp),%ymm0,%ymm10
2814 leaq (%r10,%r15,1),%r10
2816 vmovdqa %ymm10,0(%rsp)
2817 vpalignr $8,%ymm1,%ymm2,%ymm8
2818 addq 32+256(%rsp),%r9
2821 vpalignr $8,%ymm5,%ymm6,%ymm11
2823 leaq (%r10,%r14,1),%r10
2824 leaq (%r9,%r12,1),%r9
2825 vpsrlq $1,%ymm8,%ymm10
2829 vpaddq %ymm11,%ymm1,%ymm1
2830 vpsrlq $7,%ymm8,%ymm11
2831 leaq (%r9,%r12,1),%r9
2834 vpsllq $56,%ymm8,%ymm9
2835 vpxor %ymm10,%ymm11,%ymm8
2837 leaq (%r9,%r13,1),%r9
2839 vpsrlq $7,%ymm10,%ymm10
2840 vpxor %ymm9,%ymm8,%ymm8
2843 leaq (%rbx,%r9,1),%rbx
2844 vpsllq $7,%ymm9,%ymm9
2845 vpxor %ymm10,%ymm8,%ymm8
2849 vpsrlq $6,%ymm0,%ymm11
2850 vpxor %ymm9,%ymm8,%ymm8
2852 leaq (%r9,%rdi,1),%r9
2854 vpsllq $3,%ymm0,%ymm10
2855 vpaddq %ymm8,%ymm1,%ymm1
2856 addq 40+256(%rsp),%r8
2859 vpsrlq $19,%ymm0,%ymm9
2860 vpxor %ymm10,%ymm11,%ymm11
2862 leaq (%r9,%r14,1),%r9
2863 leaq (%r8,%r12,1),%r8
2864 vpsllq $42,%ymm10,%ymm10
2865 vpxor %ymm9,%ymm11,%ymm11
2866 andnq %rdx,%rbx,%r12
2869 vpsrlq $42,%ymm9,%ymm9
2870 vpxor %ymm10,%ymm11,%ymm11
2871 leaq (%r8,%r12,1),%r8
2874 vpxor %ymm9,%ymm11,%ymm11
2876 leaq (%r8,%r13,1),%r8
2878 vpaddq %ymm11,%ymm1,%ymm1
2881 leaq (%rax,%r8,1),%rax
2882 vpaddq -96(%rbp),%ymm1,%ymm10
2887 leaq (%r8,%r15,1),%r8
2889 vmovdqa %ymm10,32(%rsp)
2890 vpalignr $8,%ymm2,%ymm3,%ymm8
2891 addq 64+256(%rsp),%rdx
2894 vpalignr $8,%ymm6,%ymm7,%ymm11
2896 leaq (%r8,%r14,1),%r8
2897 leaq (%rdx,%r12,1),%rdx
2898 vpsrlq $1,%ymm8,%ymm10
2899 andnq %rcx,%rax,%r12
2902 vpaddq %ymm11,%ymm2,%ymm2
2903 vpsrlq $7,%ymm8,%ymm11
2904 leaq (%rdx,%r12,1),%rdx
2907 vpsllq $56,%ymm8,%ymm9
2908 vpxor %ymm10,%ymm11,%ymm8
2910 leaq (%rdx,%r13,1),%rdx
2912 vpsrlq $7,%ymm10,%ymm10
2913 vpxor %ymm9,%ymm8,%ymm8
2916 leaq (%r11,%rdx,1),%r11
2917 vpsllq $7,%ymm9,%ymm9
2918 vpxor %ymm10,%ymm8,%ymm8
2922 vpsrlq $6,%ymm1,%ymm11
2923 vpxor %ymm9,%ymm8,%ymm8
2925 leaq (%rdx,%rdi,1),%rdx
2927 vpsllq $3,%ymm1,%ymm10
2928 vpaddq %ymm8,%ymm2,%ymm2
2929 addq 72+256(%rsp),%rcx
2932 vpsrlq $19,%ymm1,%ymm9
2933 vpxor %ymm10,%ymm11,%ymm11
2935 leaq (%rdx,%r14,1),%rdx
2936 leaq (%rcx,%r12,1),%rcx
2937 vpsllq $42,%ymm10,%ymm10
2938 vpxor %ymm9,%ymm11,%ymm11
2939 andnq %rbx,%r11,%r12
2942 vpsrlq $42,%ymm9,%ymm9
2943 vpxor %ymm10,%ymm11,%ymm11
2944 leaq (%rcx,%r12,1),%rcx
2947 vpxor %ymm9,%ymm11,%ymm11
2949 leaq (%rcx,%r13,1),%rcx
2951 vpaddq %ymm11,%ymm2,%ymm2
2954 leaq (%r10,%rcx,1),%r10
2955 vpaddq -64(%rbp),%ymm2,%ymm10
2960 leaq (%rcx,%r15,1),%rcx
2962 vmovdqa %ymm10,64(%rsp)
2963 vpalignr $8,%ymm3,%ymm4,%ymm8
2964 addq 96+256(%rsp),%rbx
2967 vpalignr $8,%ymm7,%ymm0,%ymm11
2969 leaq (%rcx,%r14,1),%rcx
2970 leaq (%rbx,%r12,1),%rbx
2971 vpsrlq $1,%ymm8,%ymm10
2972 andnq %rax,%r10,%r12
2975 vpaddq %ymm11,%ymm3,%ymm3
2976 vpsrlq $7,%ymm8,%ymm11
2977 leaq (%rbx,%r12,1),%rbx
2980 vpsllq $56,%ymm8,%ymm9
2981 vpxor %ymm10,%ymm11,%ymm8
2983 leaq (%rbx,%r13,1),%rbx
2985 vpsrlq $7,%ymm10,%ymm10
2986 vpxor %ymm9,%ymm8,%ymm8
2989 leaq (%r9,%rbx,1),%r9
2990 vpsllq $7,%ymm9,%ymm9
2991 vpxor %ymm10,%ymm8,%ymm8
2995 vpsrlq $6,%ymm2,%ymm11
2996 vpxor %ymm9,%ymm8,%ymm8
2998 leaq (%rbx,%rdi,1),%rbx
3000 vpsllq $3,%ymm2,%ymm10
3001 vpaddq %ymm8,%ymm3,%ymm3
3002 addq 104+256(%rsp),%rax
3005 vpsrlq $19,%ymm2,%ymm9
3006 vpxor %ymm10,%ymm11,%ymm11
3008 leaq (%rbx,%r14,1),%rbx
3009 leaq (%rax,%r12,1),%rax
3010 vpsllq $42,%ymm10,%ymm10
3011 vpxor %ymm9,%ymm11,%ymm11
3015 vpsrlq $42,%ymm9,%ymm9
3016 vpxor %ymm10,%ymm11,%ymm11
3017 leaq (%rax,%r12,1),%rax
3020 vpxor %ymm9,%ymm11,%ymm11
3022 leaq (%rax,%r13,1),%rax
3024 vpaddq %ymm11,%ymm3,%ymm3
3027 leaq (%r8,%rax,1),%r8
3028 vpaddq -32(%rbp),%ymm3,%ymm10
3033 leaq (%rax,%r15,1),%rax
3035 vmovdqa %ymm10,96(%rsp)
3036 leaq -128(%rsp),%rsp
3037 .cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
3040 .cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08
3042 .cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
3043 vpalignr $8,%ymm4,%ymm5,%ymm8
3044 addq 0+256(%rsp),%r11
3047 vpalignr $8,%ymm0,%ymm1,%ymm11
3049 leaq (%rax,%r14,1),%rax
3050 leaq (%r11,%r12,1),%r11
3051 vpsrlq $1,%ymm8,%ymm10
3055 vpaddq %ymm11,%ymm4,%ymm4
3056 vpsrlq $7,%ymm8,%ymm11
3057 leaq (%r11,%r12,1),%r11
3060 vpsllq $56,%ymm8,%ymm9
3061 vpxor %ymm10,%ymm11,%ymm8
3063 leaq (%r11,%r13,1),%r11
3065 vpsrlq $7,%ymm10,%ymm10
3066 vpxor %ymm9,%ymm8,%ymm8
3069 leaq (%rdx,%r11,1),%rdx
3070 vpsllq $7,%ymm9,%ymm9
3071 vpxor %ymm10,%ymm8,%ymm8
3075 vpsrlq $6,%ymm3,%ymm11
3076 vpxor %ymm9,%ymm8,%ymm8
3078 leaq (%r11,%rdi,1),%r11
3080 vpsllq $3,%ymm3,%ymm10
3081 vpaddq %ymm8,%ymm4,%ymm4
3082 addq 8+256(%rsp),%r10
3085 vpsrlq $19,%ymm3,%ymm9
3086 vpxor %ymm10,%ymm11,%ymm11
3088 leaq (%r11,%r14,1),%r11
3089 leaq (%r10,%r12,1),%r10
3090 vpsllq $42,%ymm10,%ymm10
3091 vpxor %ymm9,%ymm11,%ymm11
3095 vpsrlq $42,%ymm9,%ymm9
3096 vpxor %ymm10,%ymm11,%ymm11
3097 leaq (%r10,%r12,1),%r10
3100 vpxor %ymm9,%ymm11,%ymm11
3102 leaq (%r10,%r13,1),%r10
3104 vpaddq %ymm11,%ymm4,%ymm4
3107 leaq (%rcx,%r10,1),%rcx
3108 vpaddq 0(%rbp),%ymm4,%ymm10
3113 leaq (%r10,%r15,1),%r10
3115 vmovdqa %ymm10,0(%rsp)
3116 vpalignr $8,%ymm5,%ymm6,%ymm8
3117 addq 32+256(%rsp),%r9
3120 vpalignr $8,%ymm1,%ymm2,%ymm11
3122 leaq (%r10,%r14,1),%r10
3123 leaq (%r9,%r12,1),%r9
3124 vpsrlq $1,%ymm8,%ymm10
3128 vpaddq %ymm11,%ymm5,%ymm5
3129 vpsrlq $7,%ymm8,%ymm11
3130 leaq (%r9,%r12,1),%r9
3133 vpsllq $56,%ymm8,%ymm9
3134 vpxor %ymm10,%ymm11,%ymm8
3136 leaq (%r9,%r13,1),%r9
3138 vpsrlq $7,%ymm10,%ymm10
3139 vpxor %ymm9,%ymm8,%ymm8
3142 leaq (%rbx,%r9,1),%rbx
3143 vpsllq $7,%ymm9,%ymm9
3144 vpxor %ymm10,%ymm8,%ymm8
3148 vpsrlq $6,%ymm4,%ymm11
3149 vpxor %ymm9,%ymm8,%ymm8
3151 leaq (%r9,%rdi,1),%r9
3153 vpsllq $3,%ymm4,%ymm10
3154 vpaddq %ymm8,%ymm5,%ymm5
3155 addq 40+256(%rsp),%r8
3158 vpsrlq $19,%ymm4,%ymm9
3159 vpxor %ymm10,%ymm11,%ymm11
3161 leaq (%r9,%r14,1),%r9
3162 leaq (%r8,%r12,1),%r8
3163 vpsllq $42,%ymm10,%ymm10
3164 vpxor %ymm9,%ymm11,%ymm11
3165 andnq %rdx,%rbx,%r12
3168 vpsrlq $42,%ymm9,%ymm9
3169 vpxor %ymm10,%ymm11,%ymm11
3170 leaq (%r8,%r12,1),%r8
3173 vpxor %ymm9,%ymm11,%ymm11
3175 leaq (%r8,%r13,1),%r8
3177 vpaddq %ymm11,%ymm5,%ymm5
3180 leaq (%rax,%r8,1),%rax
3181 vpaddq 32(%rbp),%ymm5,%ymm10
3186 leaq (%r8,%r15,1),%r8
3188 vmovdqa %ymm10,32(%rsp)
3189 vpalignr $8,%ymm6,%ymm7,%ymm8
3190 addq 64+256(%rsp),%rdx
3193 vpalignr $8,%ymm2,%ymm3,%ymm11
3195 leaq (%r8,%r14,1),%r8
3196 leaq (%rdx,%r12,1),%rdx
3197 vpsrlq $1,%ymm8,%ymm10
3198 andnq %rcx,%rax,%r12
3201 vpaddq %ymm11,%ymm6,%ymm6
3202 vpsrlq $7,%ymm8,%ymm11
3203 leaq (%rdx,%r12,1),%rdx
3206 vpsllq $56,%ymm8,%ymm9
3207 vpxor %ymm10,%ymm11,%ymm8
3209 leaq (%rdx,%r13,1),%rdx
3211 vpsrlq $7,%ymm10,%ymm10
3212 vpxor %ymm9,%ymm8,%ymm8
3215 leaq (%r11,%rdx,1),%r11
3216 vpsllq $7,%ymm9,%ymm9
3217 vpxor %ymm10,%ymm8,%ymm8
3221 vpsrlq $6,%ymm5,%ymm11
3222 vpxor %ymm9,%ymm8,%ymm8
3224 leaq (%rdx,%rdi,1),%rdx
3226 vpsllq $3,%ymm5,%ymm10
3227 vpaddq %ymm8,%ymm6,%ymm6
3228 addq 72+256(%rsp),%rcx
3231 vpsrlq $19,%ymm5,%ymm9
3232 vpxor %ymm10,%ymm11,%ymm11
3234 leaq (%rdx,%r14,1),%rdx
3235 leaq (%rcx,%r12,1),%rcx
3236 vpsllq $42,%ymm10,%ymm10
3237 vpxor %ymm9,%ymm11,%ymm11
3238 andnq %rbx,%r11,%r12
3241 vpsrlq $42,%ymm9,%ymm9
3242 vpxor %ymm10,%ymm11,%ymm11
3243 leaq (%rcx,%r12,1),%rcx
3246 vpxor %ymm9,%ymm11,%ymm11
3248 leaq (%rcx,%r13,1),%rcx
3250 vpaddq %ymm11,%ymm6,%ymm6
3253 leaq (%r10,%rcx,1),%r10
3254 vpaddq 64(%rbp),%ymm6,%ymm10
3259 leaq (%rcx,%r15,1),%rcx
3261 vmovdqa %ymm10,64(%rsp)
3262 vpalignr $8,%ymm7,%ymm0,%ymm8
3263 addq 96+256(%rsp),%rbx
3266 vpalignr $8,%ymm3,%ymm4,%ymm11
3268 leaq (%rcx,%r14,1),%rcx
3269 leaq (%rbx,%r12,1),%rbx
3270 vpsrlq $1,%ymm8,%ymm10
3271 andnq %rax,%r10,%r12
3274 vpaddq %ymm11,%ymm7,%ymm7
3275 vpsrlq $7,%ymm8,%ymm11
3276 leaq (%rbx,%r12,1),%rbx
3279 vpsllq $56,%ymm8,%ymm9
3280 vpxor %ymm10,%ymm11,%ymm8
3282 leaq (%rbx,%r13,1),%rbx
3284 vpsrlq $7,%ymm10,%ymm10
3285 vpxor %ymm9,%ymm8,%ymm8
3288 leaq (%r9,%rbx,1),%r9
3289 vpsllq $7,%ymm9,%ymm9
3290 vpxor %ymm10,%ymm8,%ymm8
3294 vpsrlq $6,%ymm6,%ymm11
3295 vpxor %ymm9,%ymm8,%ymm8
3297 leaq (%rbx,%rdi,1),%rbx
3299 vpsllq $3,%ymm6,%ymm10
3300 vpaddq %ymm8,%ymm7,%ymm7
3301 addq 104+256(%rsp),%rax
3304 vpsrlq $19,%ymm6,%ymm9
3305 vpxor %ymm10,%ymm11,%ymm11
3307 leaq (%rbx,%r14,1),%rbx
3308 leaq (%rax,%r12,1),%rax
3309 vpsllq $42,%ymm10,%ymm10
3310 vpxor %ymm9,%ymm11,%ymm11
3314 vpsrlq $42,%ymm9,%ymm9
3315 vpxor %ymm10,%ymm11,%ymm11
3316 leaq (%rax,%r12,1),%rax
3319 vpxor %ymm9,%ymm11,%ymm11
3321 leaq (%rax,%r13,1),%rax
3323 vpaddq %ymm11,%ymm7,%ymm7
3326 leaq (%r8,%rax,1),%r8
3327 vpaddq 96(%rbp),%ymm7,%ymm10
3332 leaq (%rax,%r15,1),%rax
3334 vmovdqa %ymm10,96(%rsp)
3338 addq 0+128(%rsp),%r11
3342 leaq (%rax,%r14,1),%rax
3343 leaq (%r11,%r12,1),%r11
3347 leaq (%r11,%r12,1),%r11
3351 leaq (%r11,%r13,1),%r11
3355 leaq (%rdx,%r11,1),%rdx
3360 leaq (%r11,%rdi,1),%r11
3362 addq 8+128(%rsp),%r10
3366 leaq (%r11,%r14,1),%r11
3367 leaq (%r10,%r12,1),%r10
3371 leaq (%r10,%r12,1),%r10
3375 leaq (%r10,%r13,1),%r10
3379 leaq (%rcx,%r10,1),%rcx
3384 leaq (%r10,%r15,1),%r10
3386 addq 32+128(%rsp),%r9
3390 leaq (%r10,%r14,1),%r10
3391 leaq (%r9,%r12,1),%r9
3395 leaq (%r9,%r12,1),%r9
3399 leaq (%r9,%r13,1),%r9
3403 leaq (%rbx,%r9,1),%rbx
3408 leaq (%r9,%rdi,1),%r9
3410 addq 40+128(%rsp),%r8
3414 leaq (%r9,%r14,1),%r9
3415 leaq (%r8,%r12,1),%r8
3416 andnq %rdx,%rbx,%r12
3419 leaq (%r8,%r12,1),%r8
3423 leaq (%r8,%r13,1),%r8
3427 leaq (%rax,%r8,1),%rax
3432 leaq (%r8,%r15,1),%r8
3434 addq 64+128(%rsp),%rdx
3438 leaq (%r8,%r14,1),%r8
3439 leaq (%rdx,%r12,1),%rdx
3440 andnq %rcx,%rax,%r12
3443 leaq (%rdx,%r12,1),%rdx
3447 leaq (%rdx,%r13,1),%rdx
3451 leaq (%r11,%rdx,1),%r11
3456 leaq (%rdx,%rdi,1),%rdx
3458 addq 72+128(%rsp),%rcx
3462 leaq (%rdx,%r14,1),%rdx
3463 leaq (%rcx,%r12,1),%rcx
3464 andnq %rbx,%r11,%r12
3467 leaq (%rcx,%r12,1),%rcx
3471 leaq (%rcx,%r13,1),%rcx
3475 leaq (%r10,%rcx,1),%r10
3480 leaq (%rcx,%r15,1),%rcx
3482 addq 96+128(%rsp),%rbx
3486 leaq (%rcx,%r14,1),%rcx
3487 leaq (%rbx,%r12,1),%rbx
3488 andnq %rax,%r10,%r12
3491 leaq (%rbx,%r12,1),%rbx
3495 leaq (%rbx,%r13,1),%rbx
3499 leaq (%r9,%rbx,1),%r9
3504 leaq (%rbx,%rdi,1),%rbx
3506 addq 104+128(%rsp),%rax
3510 leaq (%rbx,%r14,1),%rbx
3511 leaq (%rax,%r12,1),%rax
3515 leaq (%rax,%r12,1),%rax
3519 leaq (%rax,%r13,1),%rax
3523 leaq (%r8,%rax,1),%r8
3528 leaq (%rax,%r15,1),%rax
3534 leaq (%rax,%r14,1),%rax
3535 leaq (%r11,%r12,1),%r11
3539 leaq (%r11,%r12,1),%r11
3543 leaq (%r11,%r13,1),%r11
3547 leaq (%rdx,%r11,1),%rdx
3552 leaq (%r11,%rdi,1),%r11
3558 leaq (%r11,%r14,1),%r11
3559 leaq (%r10,%r12,1),%r10
3563 leaq (%r10,%r12,1),%r10
3567 leaq (%r10,%r13,1),%r10
3571 leaq (%rcx,%r10,1),%rcx
3576 leaq (%r10,%r15,1),%r10
3582 leaq (%r10,%r14,1),%r10
3583 leaq (%r9,%r12,1),%r9
3587 leaq (%r9,%r12,1),%r9
3591 leaq (%r9,%r13,1),%r9
3595 leaq (%rbx,%r9,1),%rbx
3600 leaq (%r9,%rdi,1),%r9
3606 leaq (%r9,%r14,1),%r9
3607 leaq (%r8,%r12,1),%r8
3608 andnq %rdx,%rbx,%r12
3611 leaq (%r8,%r12,1),%r8
3615 leaq (%r8,%r13,1),%r8
3619 leaq (%rax,%r8,1),%rax
3624 leaq (%r8,%r15,1),%r8
3630 leaq (%r8,%r14,1),%r8
3631 leaq (%rdx,%r12,1),%rdx
3632 andnq %rcx,%rax,%r12
3635 leaq (%rdx,%r12,1),%rdx
3639 leaq (%rdx,%r13,1),%rdx
3643 leaq (%r11,%rdx,1),%r11
3648 leaq (%rdx,%rdi,1),%rdx
3654 leaq (%rdx,%r14,1),%rdx
3655 leaq (%rcx,%r12,1),%rcx
3656 andnq %rbx,%r11,%r12
3659 leaq (%rcx,%r12,1),%rcx
3663 leaq (%rcx,%r13,1),%rcx
3667 leaq (%r10,%rcx,1),%r10
3672 leaq (%rcx,%r15,1),%rcx
3678 leaq (%rcx,%r14,1),%rcx
3679 leaq (%rbx,%r12,1),%rbx
3680 andnq %rax,%r10,%r12
3683 leaq (%rbx,%r12,1),%rbx
3687 leaq (%rbx,%r13,1),%rbx
3691 leaq (%r9,%rbx,1),%r9
3696 leaq (%rbx,%rdi,1),%rbx
3702 leaq (%rbx,%r14,1),%rbx
3703 leaq (%rax,%r12,1),%rax
3707 leaq (%rax,%r12,1),%rax
3711 leaq (%rax,%r13,1),%rax
3715 leaq (%r8,%rax,1),%r8
3720 leaq (%rax,%r15,1),%rax
3722 movq 1280(%rsp),%rdi
3725 leaq 1152(%rsp),%rbp
3755 addq 0+16(%rbp),%r11
3759 leaq (%rax,%r14,1),%rax
3760 leaq (%r11,%r12,1),%r11
3764 leaq (%r11,%r12,1),%r11
3768 leaq (%r11,%r13,1),%r11
3772 leaq (%rdx,%r11,1),%rdx
3777 leaq (%r11,%rdi,1),%r11
3779 addq 8+16(%rbp),%r10
3783 leaq (%r11,%r14,1),%r11
3784 leaq (%r10,%r12,1),%r10
3788 leaq (%r10,%r12,1),%r10
3792 leaq (%r10,%r13,1),%r10
3796 leaq (%rcx,%r10,1),%rcx
3801 leaq (%r10,%r15,1),%r10
3803 addq 32+16(%rbp),%r9
3807 leaq (%r10,%r14,1),%r10
3808 leaq (%r9,%r12,1),%r9
3812 leaq (%r9,%r12,1),%r9
3816 leaq (%r9,%r13,1),%r9
3820 leaq (%rbx,%r9,1),%rbx
3825 leaq (%r9,%rdi,1),%r9
3827 addq 40+16(%rbp),%r8
3831 leaq (%r9,%r14,1),%r9
3832 leaq (%r8,%r12,1),%r8
3833 andnq %rdx,%rbx,%r12
3836 leaq (%r8,%r12,1),%r8
3840 leaq (%r8,%r13,1),%r8
3844 leaq (%rax,%r8,1),%rax
3849 leaq (%r8,%r15,1),%r8
3851 addq 64+16(%rbp),%rdx
3855 leaq (%r8,%r14,1),%r8
3856 leaq (%rdx,%r12,1),%rdx
3857 andnq %rcx,%rax,%r12
3860 leaq (%rdx,%r12,1),%rdx
3864 leaq (%rdx,%r13,1),%rdx
3868 leaq (%r11,%rdx,1),%r11
3873 leaq (%rdx,%rdi,1),%rdx
3875 addq 72+16(%rbp),%rcx
3879 leaq (%rdx,%r14,1),%rdx
3880 leaq (%rcx,%r12,1),%rcx
3881 andnq %rbx,%r11,%r12
3884 leaq (%rcx,%r12,1),%rcx
3888 leaq (%rcx,%r13,1),%rcx
3892 leaq (%r10,%rcx,1),%r10
3897 leaq (%rcx,%r15,1),%rcx
3899 addq 96+16(%rbp),%rbx
3903 leaq (%rcx,%r14,1),%rcx
3904 leaq (%rbx,%r12,1),%rbx
3905 andnq %rax,%r10,%r12
3908 leaq (%rbx,%r12,1),%rbx
3912 leaq (%rbx,%r13,1),%rbx
3916 leaq (%r9,%rbx,1),%r9
3921 leaq (%rbx,%rdi,1),%rbx
3923 addq 104+16(%rbp),%rax
3927 leaq (%rbx,%r14,1),%rbx
3928 leaq (%rax,%r12,1),%rax
3932 leaq (%rax,%r12,1),%rax
3936 leaq (%rax,%r13,1),%rax
3940 leaq (%r8,%rax,1),%r8
3945 leaq (%rax,%r15,1),%rax
3947 leaq -128(%rbp),%rbp
3951 movq 1280(%rsp),%rdi
3954 leaq 1152(%rsp),%rsp
3956 .cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
3968 cmpq 128+16(%rsp),%rsi
3983 .cfi_escape 0x0f,0x06,0x76,0x98,0x01,0x06,0x23,0x08
4002 .cfi_def_cfa_register %rsp
4006 SET_SIZE(zfs_sha512_transform_avx2)
4008 #if defined(__ELF__)
4009 .section .note.GNU-stack,"",%progbits