[llvm-shlib] Fix the version naming style of libLLVM for Windows (#85710)
[llvm-project.git] / bolt / test / X86 / cfi-expr-rewrite.s
blob0d2065417854363ddefa14834dcd7e788d26be71
1 # Check that llvm-bolt is able to parse DWARF expressions in CFI instructions,
2 # store them in memory and correctly write them back to the output binary.
4 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
5 # RUN: %clang %cflags %t.o -o %t.exe
6 # RUN: llvm-bolt %t.exe -o %t && llvm-dwarfdump --eh-frame %t | FileCheck %s
8 # CHECK: DW_CFA_advance_loc: 5
9 # CHECK-NEXT: DW_CFA_def_cfa: R10 +0
10 # CHECK-NEXT: DW_CFA_advance_loc: 9
11 # CHECK-NEXT: DW_CFA_expression: RBP DW_OP_breg6 RBP+0
12 # CHECK-NEXT: DW_CFA_advance_loc: 5
13 # CHECK-NEXT: DW_CFA_def_cfa_expression: DW_OP_breg6 RBP-8, DW_OP_deref
14 # CHECK-NEXT: DW_CFA_advance_loc2: 3130
15 # CHECK-NEXT: DW_CFA_def_cfa: R10 +0
16 # CHECK-NEXT: DW_CFA_advance_loc: 5
17 # CHECK-NEXT: DW_CFA_def_cfa: RSP +8
19 .text
20 .globl main
21 .type main, %function
22 main:
23 # FDATA: 0 [unknown] 0 1 main 0 0 0
24 .cfi_startproc
25 .LBB06:
26 pushq %rbp
27 .cfi_def_cfa_offset 16
28 .cfi_offset %rbp, -16
29 movq %rsp, %rbp
30 .cfi_def_cfa_register %rbp
31 callq blake2b_compress_avx2
32 movl $0x0, %eax
33 popq %rbp
34 .cfi_def_cfa %rsp, 8
35 retq
37 .cfi_endproc
38 .size main, .-main
40 .globl blake2b_compress_avx2
41 .type blake2b_compress_avx2, %function
42 blake2b_compress_avx2:
43 # FDATA: 0 [unknown] 0 1 blake2b_compress_avx2 0 0 0
44 .cfi_startproc
45 .LBB07:
46 leaq 0x8(%rsp), %r10
47 .cfi_def_cfa %r10, 0
48 andq $-0x20, %rsp
49 pushq -0x8(%r10)
50 pushq %rbp
51 .cfi_escape 0x10, 0x06, 0x02, 0x76, 0x00 #
52 movq %rsp, %rbp
53 pushq %r10
54 .cfi_escape 0x0f, 0x03, 0x76, 0x78, 0x06 #
55 subq $0x170, %rsp
56 vbroadcasti128 (%rsi), %ymm10
57 vbroadcasti128 0x10(%rsi), %ymm8
58 vbroadcasti128 0x30(%rsi), %ymm7
59 vbroadcasti128 0x70(%rsi), %ymm4
60 vpunpcklqdq %ymm8, %ymm10, %ymm0
61 vbroadcasti128 0x20(%rsi), %ymm11
62 vmovdqa %ymm7, -0x30(%rbp)
63 vpunpcklqdq -0x30(%rbp), %ymm11, %ymm1
64 vmovdqa %ymm4, %ymm15
65 vpblendd $0xf0, %ymm1, %ymm0, %ymm4
66 vpaddq (%rdi), %ymm4, %ymm13
67 vpaddq 0x20(%rdi), %ymm13, %ymm13
68 vmovdqa %ymm4, -0x190(%rbp)
69 vbroadcasti128 0x60(%rsi), %ymm7
70 vbroadcasti128 0x50(%rsi), %ymm6
71 vbroadcasti128 0x40(%rsi), %ymm9
72 vpunpcklqdq %ymm15, %ymm7, %ymm14
73 vmovq 0x50(%rdi), %xmm5
74 vpinsrq $0x1, 0x58(%rdi), %xmm5, %xmm1
75 vmovq 0x40(%rdi), %xmm5
76 vpinsrq $0x1, 0x48(%rdi), %xmm5, %xmm0
77 vinserti128 $0x1, %xmm1, %ymm0, %ymm1
78 vpunpckhqdq %ymm8, %ymm10, %ymm0
79 vpxor "blake2b_IV/1"+32(%rip), %ymm1, %ymm1
80 vpunpckhqdq -0x30(%rbp), %ymm11, %ymm4
81 vpblendd $0xf0, %ymm4, %ymm0, %ymm0
82 vmovdqa DATAat0x401380(%rip), %ymm5
83 vmovdqa %ymm0, -0xb0(%rbp)
84 vpxor %ymm13, %ymm1, %ymm1
85 vpaddq -0xb0(%rbp), %ymm13, %ymm13
86 vpshufd $0xb1, %ymm1, %ymm1
87 vmovdqa DATAat0x4013a0(%rip), %ymm4
88 vpaddq "blake2b_IV/1"(%rip), %ymm1, %ymm3
89 vpxor 0x20(%rdi), %ymm3, %ymm2
90 vpshufb %ymm5, %ymm2, %ymm2
91 vpaddq %ymm2, %ymm13, %ymm13
92 vpxor %ymm1, %ymm13, %ymm1
93 vpshufb %ymm4, %ymm1, %ymm1
94 vpaddq %ymm1, %ymm3, %ymm3
95 vpermq $0x93, %ymm1, %ymm1
96 vpxor %ymm2, %ymm3, %ymm2
97 vpsrlq $0x3f, %ymm2, %ymm12
98 vpaddq %ymm2, %ymm2, %ymm2
99 vpermq $0x4e, %ymm3, %ymm3
100 vpor %ymm12, %ymm2, %ymm2
101 vpermq $0x39, %ymm2, %ymm0
102 vpunpcklqdq %ymm6, %ymm9, %ymm2
103 vpunpckhqdq %ymm15, %ymm7, %ymm12
104 vpblendd $0xf0, %ymm14, %ymm2, %ymm2
105 vmovdqa %ymm2, -0xd0(%rbp)
106 vpaddq -0xd0(%rbp), %ymm13, %ymm13
107 vpunpckhqdq %ymm6, %ymm9, %ymm2
108 vpblendd $0xf0, %ymm12, %ymm2, %ymm2
109 vmovdqa %ymm2, -0xf0(%rbp)
110 vmovdqa %ymm15, %ymm12
111 vpaddq %ymm0, %ymm13, %ymm13
112 vmovdqa %ymm12, -0x50(%rbp)
113 vpxor %ymm13, %ymm1, %ymm1
114 vpaddq -0xf0(%rbp), %ymm13, %ymm13
115 vpshufd $0xb1, %ymm1, %ymm1
116 vpaddq %ymm1, %ymm3, %ymm3
117 vpxor %ymm0, %ymm3, %ymm0
118 vpshufb %ymm5, %ymm0, %ymm0
119 vpaddq %ymm0, %ymm13, %ymm13
120 vpxor %ymm1, %ymm13, %ymm1
121 vpshufb %ymm4, %ymm1, %ymm1
122 vpaddq %ymm1, %ymm3, %ymm3
123 vpermq $0x39, %ymm1, %ymm1
124 vpxor %ymm0, %ymm3, %ymm0
125 vpsrlq $0x3f, %ymm0, %ymm2
126 vpaddq %ymm0, %ymm0, %ymm0
127 vpermq $0x4e, %ymm3, %ymm3
128 vpor %ymm2, %ymm0, %ymm0
129 vpunpcklqdq %ymm11, %ymm15, %ymm2
130 vmovdqa %ymm2, %ymm15
131 vpunpckhqdq %ymm7, %ymm9, %ymm2
132 vpblendd $0xf0, %ymm2, %ymm15, %ymm2
133 vmovdqa %ymm15, -0x1b0(%rbp)
134 vpermq $0x93, %ymm0, %ymm0
135 vmovdqa %ymm2, -0x110(%rbp)
136 vpunpcklqdq %ymm9, %ymm6, %ymm2
137 vpaddq -0x110(%rbp), %ymm13, %ymm13
138 vmovdqa %ymm2, %ymm15
139 vmovdqa -0x30(%rbp), %ymm2
140 vpalignr $0x8, -0x50(%rbp), %ymm2, %ymm2
141 vmovdqa %ymm15, -0x1d0(%rbp)
142 vpaddq %ymm0, %ymm13, %ymm13
143 vpblendd $0xf0, %ymm2, %ymm15, %ymm12
144 vpxor %ymm13, %ymm1, %ymm1
145 vpshufd $0xb1, %ymm1, %ymm1
146 vpaddq %ymm1, %ymm3, %ymm3
147 vmovdqa %ymm12, -0x130(%rbp)
148 vpxor %ymm0, %ymm3, %ymm0
149 vpshufb %ymm5, %ymm0, %ymm0
150 vpaddq -0x130(%rbp), %ymm13, %ymm13
151 vmovdqa -0x30(%rbp), %ymm15
152 vpunpckhqdq %ymm11, %ymm6, %ymm12
153 vpaddq %ymm0, %ymm13, %ymm13
154 vpxor %ymm1, %ymm13, %ymm1
155 vpshufb %ymm4, %ymm1, %ymm1
156 vpaddq %ymm1, %ymm3, %ymm3
157 vpermq $0x93, %ymm1, %ymm1
158 vpxor %ymm0, %ymm3, %ymm0
159 vpsrlq $0x3f, %ymm0, %ymm2
160 vpaddq %ymm0, %ymm0, %ymm0
161 vpermq $0x4e, %ymm3, %ymm3
162 vpor %ymm2, %ymm0, %ymm0
163 vpshufd $0x4e, %ymm10, %ymm2
164 vpblendd $0xf0, %ymm12, %ymm2, %ymm12
165 vpermq $0x39, %ymm0, %ymm0
166 vmovdqa %ymm12, -0x150(%rbp)
167 vpunpckhqdq %ymm8, %ymm15, %ymm12
168 vpunpcklqdq %ymm8, %ymm7, %ymm2
169 vpaddq -0x150(%rbp), %ymm13, %ymm13
170 vmovdqa %ymm12, -0x70(%rbp)
171 vmovdqa -0x50(%rbp), %ymm15
172 vpblendd $0xf0, -0x70(%rbp), %ymm2, %ymm2
173 vpaddq %ymm0, %ymm13, %ymm13
174 vmovdqa %ymm2, -0x170(%rbp)
175 vpxor %ymm13, %ymm1, %ymm1
176 vpunpckhqdq %ymm15, %ymm11, %ymm12
177 vpaddq -0x170(%rbp), %ymm13, %ymm13
178 vpshufd $0xb1, %ymm1, %ymm1
179 vpaddq %ymm1, %ymm3, %ymm3
180 vmovdqa %ymm12, -0x90(%rbp)
181 vpunpcklqdq %ymm10, %ymm9, %ymm12
182 vpxor %ymm0, %ymm3, %ymm0
183 vpshufb %ymm5, %ymm0, %ymm0
184 vpaddq %ymm0, %ymm13, %ymm13
185 vpxor %ymm1, %ymm13, %ymm1
186 vpshufb %ymm4, %ymm1, %ymm1
187 vpaddq %ymm1, %ymm3, %ymm3
188 vpermq $0x39, %ymm1, %ymm1
189 vpxor %ymm0, %ymm3, %ymm0
190 vpsrlq $0x3f, %ymm0, %ymm2
191 vpaddq %ymm0, %ymm0, %ymm0
192 vpermq $0x4e, %ymm3, %ymm3
193 vpor %ymm2, %ymm0, %ymm0
194 vpalignr $0x8, %ymm6, %ymm7, %ymm2
195 vpermq $0x93, %ymm0, %ymm0
196 vpblendd $0xf0, -0x90(%rbp), %ymm2, %ymm2
197 vpaddq %ymm2, %ymm13, %ymm2
198 vpblendd $0x33, %ymm8, %ymm7, %ymm13
199 vpaddq %ymm0, %ymm2, %ymm2
200 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
201 vmovdqa -0x30(%rbp), %ymm13
202 vpxor %ymm2, %ymm1, %ymm1
203 vpaddq %ymm12, %ymm2, %ymm12
204 vpshufd $0xb1, %ymm1, %ymm1
205 vpaddq %ymm1, %ymm3, %ymm3
206 vpxor %ymm0, %ymm3, %ymm0
207 vpshufb %ymm5, %ymm0, %ymm0
208 vpaddq %ymm0, %ymm12, %ymm12
209 vpunpckhqdq %ymm9, %ymm13, %ymm13
210 vpxor %ymm1, %ymm12, %ymm1
211 vpshufb %ymm4, %ymm1, %ymm1
212 vpaddq %ymm1, %ymm3, %ymm3
213 vpermq $0x93, %ymm1, %ymm1
214 vpxor %ymm0, %ymm3, %ymm0
215 vpsrlq $0x3f, %ymm0, %ymm2
216 vpaddq %ymm0, %ymm0, %ymm0
217 vpermq $0x4e, %ymm3, %ymm3
218 vpor %ymm2, %ymm0, %ymm0
219 vpblendd $0x33, %ymm6, %ymm8, %ymm2
220 vpermq $0x39, %ymm0, %ymm0
221 vpblendd $0xf0, %ymm13, %ymm2, %ymm13
222 vpunpcklqdq -0x30(%rbp), %ymm15, %ymm2
223 vmovdqa -0x70(%rbp), %ymm15
224 vpaddq %ymm13, %ymm12, %ymm13
225 vpalignr $0x8, %ymm10, %ymm11, %ymm12
226 vpaddq %ymm0, %ymm13, %ymm13
227 vpblendd $0xf0, %ymm12, %ymm2, %ymm2
228 vpxor %ymm13, %ymm1, %ymm1
229 vpaddq %ymm2, %ymm13, %ymm2
230 vpshufd $0xb1, %ymm1, %ymm1
231 vpaddq %ymm1, %ymm3, %ymm3
232 vpxor %ymm0, %ymm3, %ymm0
233 vpshufb %ymm5, %ymm0, %ymm0
234 vpaddq %ymm0, %ymm2, %ymm2
235 vpunpckhqdq %ymm10, %ymm9, %ymm13
236 vpxor %ymm1, %ymm2, %ymm1
237 vpshufb %ymm4, %ymm1, %ymm1
238 vpaddq %ymm1, %ymm3, %ymm3
239 vpblendd $0xf0, %ymm14, %ymm13, %ymm13
240 vpxor %ymm0, %ymm3, %ymm0
241 vpsrlq $0x3f, %ymm0, %ymm12
242 vpaddq %ymm0, %ymm0, %ymm0
243 vpermq $0x39, %ymm1, %ymm1
244 vpor %ymm12, %ymm0, %ymm0
245 vpunpckhqdq %ymm6, %ymm7, %ymm12
246 vpermq $0x93, %ymm0, %ymm0
247 vpermq $0x4e, %ymm3, %ymm3
248 vpblendd $0xf0, %ymm12, %ymm15, %ymm12
249 vmovdqa -0x50(%rbp), %ymm15
250 vpaddq %ymm12, %ymm2, %ymm12
251 vpaddq %ymm0, %ymm12, %ymm12
252 vpblendd $0x33, %ymm11, %ymm15, %ymm14
253 vpunpcklqdq %ymm6, %ymm8, %ymm15
254 vpxor %ymm12, %ymm1, %ymm1
255 vpaddq %ymm13, %ymm12, %ymm13
256 vpshufd $0xb1, %ymm1, %ymm1
257 vpaddq %ymm1, %ymm3, %ymm3
258 vpxor %ymm0, %ymm3, %ymm0
259 vpshufb %ymm5, %ymm0, %ymm0
260 vpaddq %ymm0, %ymm13, %ymm13
261 vpxor %ymm1, %ymm13, %ymm1
262 vpshufb %ymm4, %ymm1, %ymm1
263 vpaddq %ymm1, %ymm3, %ymm3
264 vpermq $0x93, %ymm1, %ymm1
265 vpxor %ymm0, %ymm3, %ymm0
266 vpsrlq $0x3f, %ymm0, %ymm2
267 vpaddq %ymm0, %ymm0, %ymm0
268 vpermq $0x4e, %ymm3, %ymm3
269 vpor %ymm2, %ymm0, %ymm0
270 vpblendd $0x33, %ymm8, %ymm11, %ymm2
271 vpermq $0x39, %ymm0, %ymm12
272 vmovdqa -0x30(%rbp), %ymm0
273 vpblendd $0xf0, %ymm14, %ymm2, %ymm2
274 vpaddq %ymm2, %ymm13, %ymm2
275 vpunpcklqdq %ymm6, %ymm0, %ymm13
276 vmovdqa %ymm13, %ymm0
277 vpunpcklqdq %ymm9, %ymm10, %ymm13
278 vmovdqa %ymm0, -0x1f0(%rbp)
279 vpaddq %ymm12, %ymm2, %ymm2
280 vpblendd $0xf0, %ymm13, %ymm0, %ymm0
281 vpxor %ymm2, %ymm1, %ymm1
282 vpaddq %ymm0, %ymm2, %ymm2
283 vpshufd $0xb1, %ymm1, %ymm1
284 vpaddq %ymm1, %ymm3, %ymm3
285 vpxor %ymm12, %ymm3, %ymm12
286 vpshufb %ymm5, %ymm12, %ymm12
287 vpaddq %ymm12, %ymm2, %ymm2
288 vpxor %ymm1, %ymm2, %ymm1
289 vpshufb %ymm4, %ymm1, %ymm1
290 vpaddq %ymm1, %ymm3, %ymm3
291 vpermq $0x39, %ymm1, %ymm1
292 vpxor %ymm12, %ymm3, %ymm12
293 vpsrlq $0x3f, %ymm12, %ymm0
294 vpaddq %ymm12, %ymm12, %ymm12
295 vpermq $0x4e, %ymm3, %ymm3
296 vpor %ymm0, %ymm12, %ymm12
297 vpermq $0x93, %ymm12, %ymm0
298 vpunpckhqdq %ymm11, %ymm9, %ymm12
299 vpblendd $0xf0, %ymm15, %ymm12, %ymm12
300 vmovdqa -0x30(%rbp), %ymm15
301 vpaddq %ymm12, %ymm2, %ymm2
302 vpaddq %ymm0, %ymm2, %ymm2
303 vpblendd $0x33, %ymm10, %ymm15, %ymm12
304 vpxor %ymm2, %ymm1, %ymm1
305 vpshufd $0xb1, %ymm1, %ymm1
306 vpaddq %ymm1, %ymm3, %ymm3
307 vpblendd $0xf0, %ymm14, %ymm12, %ymm14
308 vpxor %ymm0, %ymm3, %ymm0
309 vpshufb %ymm5, %ymm0, %ymm0
310 vmovdqa -0x50(%rbp), %ymm15
311 vpaddq %ymm14, %ymm2, %ymm2
312 vpblendd $0x33, -0x30(%rbp), %ymm8, %ymm14
313 vpaddq %ymm0, %ymm2, %ymm2
314 vpxor %ymm1, %ymm2, %ymm1
315 vpshufb %ymm4, %ymm1, %ymm1
316 vpaddq %ymm1, %ymm3, %ymm3
317 vpermq $0x93, %ymm1, %ymm1
318 vpxor %ymm0, %ymm3, %ymm0
319 vpsrlq $0x3f, %ymm0, %ymm12
320 vpaddq %ymm0, %ymm0, %ymm0
321 vpermq $0x4e, %ymm3, %ymm3
322 vpor %ymm12, %ymm0, %ymm0
323 vpblendd $0x33, %ymm15, %ymm6, %ymm12
324 vpermq $0x39, %ymm0, %ymm0
325 vpblendd $0xf0, %ymm14, %ymm12, %ymm12
326 vpblendd $0x33, %ymm9, %ymm7, %ymm14
327 vpaddq %ymm12, %ymm2, %ymm2
328 vpalignr $0x8, %ymm10, %ymm7, %ymm12
329 vpaddq %ymm0, %ymm2, %ymm2
330 vpblendd $0xf0, %ymm14, %ymm12, %ymm12
331 vmovdqa -0x30(%rbp), %ymm14
332 vpxor %ymm2, %ymm1, %ymm1
333 vpaddq %ymm12, %ymm2, %ymm2
334 vpshufd $0xb1, %ymm1, %ymm1
335 vpaddq %ymm1, %ymm3, %ymm3
336 vpxor %ymm0, %ymm3, %ymm0
337 vpshufb %ymm5, %ymm0, %ymm0
338 vpaddq %ymm0, %ymm2, %ymm2
339 vpxor %ymm1, %ymm2, %ymm1
340 vpshufb %ymm4, %ymm1, %ymm1
341 vpaddq %ymm1, %ymm3, %ymm3
342 vpermq $0x39, %ymm1, %ymm1
343 vpxor %ymm0, %ymm3, %ymm0
344 vpsrlq $0x3f, %ymm0, %ymm12
345 vpaddq %ymm0, %ymm0, %ymm0
346 vpermq $0x4e, %ymm3, %ymm3
347 vpor %ymm12, %ymm0, %ymm0
348 vpunpcklqdq -0x30(%rbp), %ymm8, %ymm12
349 vpblendd $0xf0, %ymm13, %ymm12, %ymm13
350 vpermq $0x93, %ymm0, %ymm0
351 vpaddq %ymm13, %ymm2, %ymm2
352 vpunpcklqdq %ymm6, %ymm7, %ymm12
353 vpunpckhqdq %ymm8, %ymm6, %ymm13
354 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
355 vpaddq %ymm0, %ymm2, %ymm2
356 vpunpckhqdq %ymm10, %ymm15, %ymm13
357 vpxor %ymm2, %ymm1, %ymm1
358 vpaddq %ymm12, %ymm2, %ymm2
359 vpshufd $0xb1, %ymm1, %ymm1
360 vpaddq %ymm1, %ymm3, %ymm3
361 vpxor %ymm0, %ymm3, %ymm0
362 vpshufb %ymm5, %ymm0, %ymm0
363 vpaddq %ymm0, %ymm2, %ymm2
364 vpxor %ymm1, %ymm2, %ymm1
365 vpshufb %ymm4, %ymm1, %ymm1
366 vpaddq %ymm1, %ymm3, %ymm3
367 vpermq $0x93, %ymm1, %ymm1
368 vpxor %ymm0, %ymm3, %ymm0
369 vpsrlq $0x3f, %ymm0, %ymm12
370 vpaddq %ymm0, %ymm0, %ymm0
371 vpermq $0x4e, %ymm3, %ymm3
372 vpor %ymm12, %ymm0, %ymm0
373 vpblendd $0x33, %ymm11, %ymm14, %ymm12
374 vmovdqa %ymm15, %ymm14
375 vpermq $0x39, %ymm0, %ymm0
376 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
377 vpblendd $0x33, %ymm14, %ymm9, %ymm13
378 vmovdqa -0x90(%rbp), %ymm15
379 vpaddq %ymm12, %ymm2, %ymm2
380 vpunpckhqdq %ymm11, %ymm7, %ymm12
381 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
382 vpshufd $0x4e, %ymm9, %ymm13
383 vpaddq %ymm0, %ymm2, %ymm2
384 vpxor %ymm2, %ymm1, %ymm1
385 vpaddq %ymm12, %ymm2, %ymm2
386 vpshufd $0xb1, %ymm1, %ymm1
387 vpaddq %ymm1, %ymm3, %ymm3
388 vpxor %ymm0, %ymm3, %ymm0
389 vpshufb %ymm5, %ymm0, %ymm0
390 vpaddq %ymm0, %ymm2, %ymm2
391 vpxor %ymm1, %ymm2, %ymm1
392 vpshufb %ymm4, %ymm1, %ymm1
393 vpaddq %ymm1, %ymm3, %ymm3
394 vpermq $0x39, %ymm1, %ymm1
395 vpxor %ymm0, %ymm3, %ymm0
396 vpsrlq $0x3f, %ymm0, %ymm12
397 vpaddq %ymm0, %ymm0, %ymm0
398 vpermq $0x4e, %ymm3, %ymm3
399 vpor %ymm12, %ymm0, %ymm0
400 vpblendd $0x33, %ymm7, %ymm10, %ymm12
401 vpermq $0x93, %ymm0, %ymm0
402 vpblendd $0xf0, -0x1b0(%rbp), %ymm12, %ymm12
403 vpaddq %ymm12, %ymm2, %ymm2
404 vpalignr $0x8, %ymm7, %ymm6, %ymm12
405 vpaddq %ymm0, %ymm2, %ymm2
406 vpblendd $0xf0, %ymm12, %ymm15, %ymm12
407 vmovdqa -0x70(%rbp), %ymm15
408 vpxor %ymm2, %ymm1, %ymm1
409 vpaddq %ymm12, %ymm2, %ymm2
410 vpshufd $0xb1, %ymm1, %ymm1
411 vpaddq %ymm1, %ymm3, %ymm3
412 vpxor %ymm0, %ymm3, %ymm0
413 vpshufb %ymm5, %ymm0, %ymm0
414 vpaddq %ymm0, %ymm2, %ymm2
415 vpxor %ymm1, %ymm2, %ymm1
416 vpshufb %ymm4, %ymm1, %ymm1
417 vpaddq %ymm1, %ymm3, %ymm3
418 vpermq $0x93, %ymm1, %ymm1
419 vpxor %ymm0, %ymm3, %ymm0
420 vpsrlq $0x3f, %ymm0, %ymm12
421 vpaddq %ymm0, %ymm0, %ymm0
422 vpermq $0x4e, %ymm3, %ymm3
423 vpor %ymm12, %ymm0, %ymm0
424 vpunpcklqdq -0x30(%rbp), %ymm10, %ymm12
425 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
426 vpermq $0x39, %ymm0, %ymm0
427 vpaddq %ymm12, %ymm2, %ymm2
428 vpblendd $0x33, %ymm8, %ymm6, %ymm12
429 vpblendd $0x33, %ymm7, %ymm8, %ymm13
430 vpaddq %ymm0, %ymm2, %ymm2
431 vpblendd $0xf0, %ymm12, %ymm15, %ymm12
432 vmovdqa -0x90(%rbp), %ymm15
433 vpxor %ymm2, %ymm1, %ymm1
434 vpaddq %ymm12, %ymm2, %ymm2
435 vpshufd $0xb1, %ymm1, %ymm1
436 vpaddq %ymm1, %ymm3, %ymm3
437 vpxor %ymm0, %ymm3, %ymm0
438 vpshufb %ymm5, %ymm0, %ymm0
439 vpaddq %ymm0, %ymm2, %ymm2
440 vpxor %ymm1, %ymm2, %ymm1
441 vpshufb %ymm4, %ymm1, %ymm1
442 vpaddq %ymm1, %ymm3, %ymm3
443 vpermq $0x39, %ymm1, %ymm1
444 vpxor %ymm0, %ymm3, %ymm0
445 vpsrlq $0x3f, %ymm0, %ymm12
446 vpaddq %ymm0, %ymm0, %ymm0
447 vpermq $0x4e, %ymm3, %ymm3
448 vpor %ymm12, %ymm0, %ymm0
449 vpunpckhqdq -0x30(%rbp), %ymm7, %ymm12
450 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
451 vmovdqa %ymm14, %ymm13
452 vpaddq %ymm12, %ymm2, %ymm2
453 vpalignr $0x8, %ymm6, %ymm14, %ymm14
454 vpunpckhqdq %ymm9, %ymm10, %ymm12
455 vpermq $0x93, %ymm0, %ymm0
456 vpblendd $0xf0, %ymm12, %ymm14, %ymm12
457 vpaddq %ymm0, %ymm2, %ymm2
458 vpxor %ymm2, %ymm1, %ymm1
459 vpaddq %ymm12, %ymm2, %ymm2
460 vpshufd $0xb1, %ymm1, %ymm1
461 vpaddq %ymm1, %ymm3, %ymm3
462 vpxor %ymm0, %ymm3, %ymm0
463 vpshufb %ymm5, %ymm0, %ymm0
464 vpaddq %ymm0, %ymm2, %ymm2
465 vpxor %ymm1, %ymm2, %ymm1
466 vpshufb %ymm4, %ymm1, %ymm1
467 vpaddq %ymm1, %ymm3, %ymm3
468 vpermq $0x93, %ymm1, %ymm1
469 vpxor %ymm0, %ymm3, %ymm0
470 vpsrlq $0x3f, %ymm0, %ymm12
471 vpaddq %ymm0, %ymm0, %ymm0
472 vpermq $0x4e, %ymm3, %ymm3
473 vpor %ymm12, %ymm0, %ymm0
474 vpunpcklqdq %ymm8, %ymm9, %ymm12
475 vpblendd $0xf0, %ymm12, %ymm15, %ymm12
476 vpermq $0x39, %ymm0, %ymm0
477 vpaddq %ymm12, %ymm2, %ymm2
478 vpunpcklqdq %ymm11, %ymm10, %ymm12
479 vmovdqa %ymm13, %ymm15
480 vpblendd $0xf0, -0x1f0(%rbp), %ymm12, %ymm12
481 vpaddq %ymm0, %ymm2, %ymm2
482 vpxor %ymm2, %ymm1, %ymm1
483 vpaddq %ymm12, %ymm2, %ymm2
484 vpshufd $0xb1, %ymm1, %ymm1
485 vpaddq %ymm1, %ymm3, %ymm3
486 vpxor %ymm0, %ymm3, %ymm0
487 vpshufb %ymm5, %ymm0, %ymm0
488 vpaddq %ymm0, %ymm2, %ymm2
489 vpxor %ymm1, %ymm2, %ymm1
490 vpshufb %ymm4, %ymm1, %ymm1
491 vpaddq %ymm1, %ymm3, %ymm3
492 vpermq $0x39, %ymm1, %ymm1
493 vpxor %ymm0, %ymm3, %ymm0
494 vpsrlq $0x3f, %ymm0, %ymm12
495 vpaddq %ymm0, %ymm0, %ymm0
496 vpermq $0x4e, %ymm3, %ymm3
497 vpor %ymm12, %ymm0, %ymm0
498 vmovdqa -0x30(%rbp), %ymm12
499 vpermq $0x93, %ymm0, %ymm0
500 vpunpcklqdq %ymm13, %ymm12, %ymm12
501 vpalignr $0x8, %ymm6, %ymm10, %ymm13
502 vpblendd $0xf0, %ymm13, %ymm12, %ymm12
503 vpunpckhqdq %ymm9, %ymm15, %ymm13
504 vpalignr $0x8, %ymm8, %ymm9, %ymm9
505 vpaddq %ymm12, %ymm2, %ymm12
506 vpalignr $0x8, %ymm10, %ymm6, %ymm6
507 vpblendd $0xf0, %ymm9, %ymm13, %ymm9
508 vpaddq %ymm0, %ymm12, %ymm12
509 vpblendd $0xf0, %ymm6, %ymm7, %ymm6
510 vpxor %ymm12, %ymm1, %ymm1
511 vpaddq %ymm9, %ymm12, %ymm12
512 vpshufd $0xb1, %ymm1, %ymm1
513 vpaddq %ymm1, %ymm3, %ymm3
514 vpxor %ymm3, %ymm0, %ymm0
515 vpshufb %ymm5, %ymm0, %ymm0
516 vpaddq %ymm0, %ymm12, %ymm12
517 vpxor %ymm1, %ymm12, %ymm1
518 vpaddq %ymm6, %ymm12, %ymm12
519 vpshufb %ymm4, %ymm1, %ymm1
520 vmovdqa -0x30(%rbp), %ymm6
521 vpaddq %ymm1, %ymm3, %ymm3
522 vpermq $0x93, %ymm1, %ymm1
523 vpxor %ymm0, %ymm3, %ymm0
524 vpsrlq $0x3f, %ymm0, %ymm2
525 vpaddq %ymm0, %ymm0, %ymm0
526 vpermq $0x4e, %ymm3, %ymm3
527 vpor %ymm2, %ymm0, %ymm0
528 vpblendd $0x33, %ymm8, %ymm6, %ymm2
529 vpermq $0x39, %ymm0, %ymm0
530 vpaddq %ymm0, %ymm12, %ymm12
531 vpblendd $0xf0, %ymm11, %ymm2, %ymm2
532 vpxor %ymm12, %ymm1, %ymm1
533 vpshufd $0xb1, %ymm1, %ymm1
534 vpaddq %ymm1, %ymm3, %ymm3
535 vpaddq %ymm2, %ymm12, %ymm12
536 vpxor %ymm3, %ymm0, %ymm0
537 vpshufb %ymm5, %ymm0, %ymm0
538 vmovdqa -0x30(%rbp), %ymm6
539 vpaddq %ymm0, %ymm12, %ymm12
540 vpxor %ymm1, %ymm12, %ymm1
541 vpshufb %ymm4, %ymm1, %ymm1
542 vpaddq %ymm1, %ymm3, %ymm3
543 vpermq $0x39, %ymm1, %ymm1
544 vpxor %ymm0, %ymm3, %ymm0
545 vpsrlq $0x3f, %ymm0, %ymm2
546 vpaddq %ymm0, %ymm0, %ymm0
547 vpermq $0x4e, %ymm3, %ymm3
548 vpor %ymm2, %ymm0, %ymm2
549 vpunpckhqdq %ymm10, %ymm6, %ymm0
550 vmovdqa -0x1d0(%rbp), %ymm6
551 vpermq $0x93, %ymm2, %ymm2
552 vpblendd $0xf0, %ymm0, %ymm6, %ymm0
553 vpaddq %ymm0, %ymm12, %ymm12
554 vpunpcklqdq %ymm11, %ymm8, %ymm0
555 vpblendd $0x33, -0x30(%rbp), %ymm11, %ymm11
556 vpunpckhqdq %ymm7, %ymm8, %ymm8
557 vpaddq %ymm2, %ymm12, %ymm12
558 vpblendd $0xf0, %ymm11, %ymm0, %ymm11
559 vpblendd $0xf0, %ymm8, %ymm13, %ymm8
560 vpunpcklqdq %ymm10, %ymm7, %ymm7
561 vpxor %ymm12, %ymm1, %ymm1
562 vpaddq %ymm11, %ymm12, %ymm12
563 vpshufd $0xb1, %ymm1, %ymm1
564 vpaddq %ymm1, %ymm3, %ymm3
565 vpxor %ymm3, %ymm2, %ymm2
566 vpshufb %ymm5, %ymm2, %ymm2
567 vpaddq %ymm2, %ymm12, %ymm12
568 vpblendd $0xf0, %ymm7, %ymm14, %ymm7
569 vpxor %ymm1, %ymm12, %ymm1
570 vpshufb %ymm4, %ymm1, %ymm1
571 vpaddq %ymm1, %ymm3, %ymm3
572 vpaddq %ymm8, %ymm12, %ymm8
573 vpxor %ymm2, %ymm3, %ymm2
574 vpsrlq $0x3f, %ymm2, %ymm0
575 vpaddq %ymm2, %ymm2, %ymm2
576 vpermq $0x93, %ymm1, %ymm1
577 vpor %ymm0, %ymm2, %ymm2
578 vpermq $0x39, %ymm2, %ymm2
579 vpaddq %ymm2, %ymm8, %ymm8
580 vpermq $0x4e, %ymm3, %ymm3
581 vpxor %ymm8, %ymm1, %ymm1
582 vpaddq %ymm7, %ymm8, %ymm8
583 vpshufd $0xb1, %ymm1, %ymm1
584 vpaddq %ymm1, %ymm3, %ymm3
585 vpxor %ymm3, %ymm2, %ymm2
586 vpshufb %ymm5, %ymm2, %ymm2
587 vpaddq %ymm2, %ymm8, %ymm8
588 vpxor %ymm1, %ymm8, %ymm1
589 vpaddq -0x190(%rbp), %ymm8, %ymm8
590 vpshufb %ymm4, %ymm1, %ymm1
591 vpaddq %ymm1, %ymm3, %ymm3
592 vpxor %ymm2, %ymm3, %ymm2
593 vpsrlq $0x3f, %ymm2, %ymm0
594 vpaddq %ymm2, %ymm2, %ymm2
595 vpermq $0x39, %ymm1, %ymm1
596 vpor %ymm0, %ymm2, %ymm2
597 vpermq $0x93, %ymm2, %ymm0
598 vpaddq %ymm0, %ymm8, %ymm8
599 vpermq $0x4e, %ymm3, %ymm3
600 vpxor %ymm8, %ymm1, %ymm1
601 vpaddq -0xb0(%rbp), %ymm8, %ymm8
602 vpshufd $0xb1, %ymm1, %ymm1
603 vpaddq %ymm1, %ymm3, %ymm3
604 vpxor %ymm3, %ymm0, %ymm0
605 vpshufb %ymm5, %ymm0, %ymm0
606 vpaddq %ymm0, %ymm8, %ymm8
607 vpxor %ymm1, %ymm8, %ymm1
608 vpaddq -0xd0(%rbp), %ymm8, %ymm8
609 vpshufb %ymm4, %ymm1, %ymm1
610 vpaddq %ymm1, %ymm3, %ymm3
611 vpxor %ymm0, %ymm3, %ymm0
612 vpaddq %ymm0, %ymm0, %ymm6
613 vpermq $0x93, %ymm1, %ymm1
614 vpermq $0x4e, %ymm3, %ymm3
615 vpsrlq $0x3f, %ymm0, %ymm2
616 vpor %ymm2, %ymm6, %ymm6
617 vpermq $0x39, %ymm6, %ymm6
618 vpaddq %ymm6, %ymm8, %ymm2
619 vpxor %ymm2, %ymm1, %ymm1
620 vpaddq -0xf0(%rbp), %ymm2, %ymm2
621 vpshufd $0xb1, %ymm1, %ymm1
622 vpaddq %ymm1, %ymm3, %ymm3
623 vpxor %ymm3, %ymm6, %ymm6
624 vpshufb %ymm5, %ymm6, %ymm6
625 vpaddq %ymm6, %ymm2, %ymm2
626 vpxor %ymm1, %ymm2, %ymm1
627 vpaddq -0x110(%rbp), %ymm2, %ymm2
628 vpshufb %ymm4, %ymm1, %ymm1
629 vpaddq %ymm1, %ymm3, %ymm3
630 vpxor %ymm6, %ymm3, %ymm6
631 vpsrlq $0x3f, %ymm6, %ymm0
632 vpaddq %ymm6, %ymm6, %ymm6
633 vpermq $0x39, %ymm1, %ymm1
634 vpor %ymm0, %ymm6, %ymm0
635 vpermq $0x93, %ymm0, %ymm0
636 vpaddq %ymm0, %ymm2, %ymm2
637 vpermq $0x4e, %ymm3, %ymm3
638 vpxor %ymm2, %ymm1, %ymm1
639 vpaddq -0x130(%rbp), %ymm2, %ymm2
640 vpshufd $0xb1, %ymm1, %ymm1
641 vpaddq %ymm1, %ymm3, %ymm3
642 vpxor %ymm3, %ymm0, %ymm0
643 vpshufb %ymm5, %ymm0, %ymm0
644 vpaddq %ymm0, %ymm2, %ymm2
645 vpxor %ymm1, %ymm2, %ymm1
646 vpaddq -0x150(%rbp), %ymm2, %ymm2
647 vpshufb %ymm4, %ymm1, %ymm1
648 vpaddq %ymm1, %ymm3, %ymm3
649 vpxor %ymm0, %ymm3, %ymm0
650 vpsrlq $0x3f, %ymm0, %ymm6
651 vpaddq %ymm0, %ymm0, %ymm0
652 vpermq $0x93, %ymm1, %ymm1
653 vpor %ymm6, %ymm0, %ymm0
654 vpermq $0x39, %ymm0, %ymm0
655 vpaddq %ymm0, %ymm2, %ymm2
656 vpermq $0x4e, %ymm3, %ymm3
657 vpxor %ymm2, %ymm1, %ymm1
658 vpaddq -0x170(%rbp), %ymm2, %ymm2
659 vpshufd $0xb1, %ymm1, %ymm1
660 vpaddq %ymm1, %ymm3, %ymm3
661 vpxor %ymm3, %ymm0, %ymm0
662 vpshufb %ymm5, %ymm0, %ymm5
663 vpaddq %ymm5, %ymm2, %ymm2
664 vpxor %ymm1, %ymm2, %ymm1
665 vpshufb %ymm4, %ymm1, %ymm4
666 vpaddq %ymm4, %ymm3, %ymm0
667 vpermq $0x39, %ymm4, %ymm4
668 vpxor %ymm5, %ymm0, %ymm5
669 vpsrlq $0x3f, %ymm5, %ymm1
670 vpaddq %ymm5, %ymm5, %ymm5
671 vpermq $0x4e, %ymm0, %ymm0
672 vpor %ymm1, %ymm5, %ymm5
673 vpxor (%rdi), %ymm0, %ymm0
674 vpermq $0x93, %ymm5, %ymm5
675 vpxor %ymm2, %ymm0, %ymm2
676 vmovdqu %ymm2, (%rdi)
677 vpxor 0x20(%rdi), %ymm5, %ymm5
678 vpxor %ymm4, %ymm5, %ymm4
679 vmovdqu %ymm4, 0x20(%rdi)
680 vzeroupper
681 xorl %eax, %eax
682 addq $0x170, %rsp
683 popq %r10
684 .cfi_def_cfa %r10, 0
685 popq %rbp
686 leaq -0x8(%r10), %rsp
687 .cfi_def_cfa %rsp, 8
688 retq
690 .cfi_endproc
691 .size blake2b_compress_avx2, .-blake2b_compress_avx2
692 .section .rodata
693 "blake2b_IV/1":
694 "DATAat0x4013a0":
695 "DATAat0x401380":