summaryrefslogtreecommitdiffhomepage
path: root/src/crypto/zinc/blake2s/blake2s-x86_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/zinc/blake2s/blake2s-x86_64.S')
-rw-r--r--src/crypto/zinc/blake2s/blake2s-x86_64.S1526
1 files changed, 945 insertions, 581 deletions
diff --git a/src/crypto/zinc/blake2s/blake2s-x86_64.S b/src/crypto/zinc/blake2s/blake2s-x86_64.S
index 675288f..9bb4c83 100644
--- a/src/crypto/zinc/blake2s/blake2s-x86_64.S
+++ b/src/crypto/zinc/blake2s/blake2s-x86_64.S
@@ -20,588 +20,952 @@ ROR328: .octa 0x0C0F0E0D080B0A090407060500030201
.section .rodata.cst64.BLAKE2S_SIGMA, "aM", @progbits, 640
.align 64
SIGMA:
-.long 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15
-.long 11, 2, 12, 14, 9, 8, 15, 3, 4, 0, 13, 6, 10, 1, 7, 5
-.long 10, 12, 11, 6, 5, 9, 13, 3, 4, 15, 14, 2, 0, 7, 8, 1
-.long 10, 9, 7, 0, 11, 14, 1, 12, 6, 2, 15, 3, 13, 8, 5, 4
-.long 4, 9, 8, 13, 14, 0, 10, 11, 7, 3, 12, 1, 5, 6, 15, 2
-.long 2, 10, 4, 14, 13, 3, 9, 11, 6, 5, 7, 12, 15, 1, 8, 0
-.long 4, 11, 14, 8, 13, 10, 12, 5, 2, 1, 15, 3, 9, 7, 0, 6
-.long 6, 12, 0, 13, 15, 2, 1, 10, 4, 5, 11, 14, 8, 3, 9, 7
-.long 14, 5, 4, 12, 9, 7, 3, 10, 2, 0, 6, 15, 11, 1, 13, 8
-.long 11, 7, 13, 10, 12, 14, 0, 15, 4, 5, 6, 9, 2, 1, 8, 3
+.long 0, 2, 4, 6, 1, 3, 5, 7, 14, 8, 10, 12, 15, 9, 11, 13
+.long 8, 2, 13, 15, 10, 9, 12, 3, 6, 4, 0, 14, 5, 11, 1, 7
+.long 11, 13, 8, 6, 5, 10, 14, 3, 2, 4, 12, 15, 1, 0, 7, 9
+.long 11, 10, 7, 0, 8, 15, 1, 13, 3, 6, 2, 12, 4, 14, 9, 5
+.long 4, 10, 9, 14, 15, 0, 11, 8, 1, 7, 3, 13, 2, 5, 6, 12
+.long 2, 11, 4, 15, 14, 3, 10, 8, 13, 6, 5, 7, 0, 12, 1, 9
+.long 4, 8, 15, 9, 14, 11, 13, 5, 3, 2, 1, 12, 6, 10, 7, 0
+.long 6, 13, 0, 14, 12, 2, 1, 11, 15, 4, 5, 8, 7, 9, 3, 10
+.long 15, 5, 4, 13, 10, 7, 3, 11, 12, 2, 0, 6, 9, 8, 1, 14
+.long 8, 7, 14, 11, 13, 15, 0, 12, 10, 4, 5, 6, 3, 2, 1, 9
#endif /* CONFIG_AS_AVX512 */
.text
-#ifdef CONFIG_AS_AVX
-ENTRY(blake2s_compress_avx)
- movl %ecx, %ecx
- testq %rdx, %rdx
- je .Lendofloop
+#ifdef CONFIG_AS_SSSE3
+ENTRY(blake2s_compress_ssse3)
+ testq %rdx, %rdx
+ je .Lendofloop
+ movdqu (%rdi),%xmm0
+ movdqu 0x10(%rdi),%xmm1
+ movdqa ROT16(%rip),%xmm12
+ movdqa ROR328(%rip),%xmm13
+ movdqu 0x20(%rdi),%xmm14
+ movq %rcx,%xmm15
+ jmp .Lbeginofloop
.align 32
.Lbeginofloop:
- addq %rcx, 32(%rdi)
- vmovdqu IV+16(%rip), %xmm1
- vmovdqu (%rsi), %xmm4
- vpxor 32(%rdi), %xmm1, %xmm1
- vmovdqu 16(%rsi), %xmm3
- vshufps $136, %xmm3, %xmm4, %xmm6
- vmovdqa ROT16(%rip), %xmm7
- vpaddd (%rdi), %xmm6, %xmm6
- vpaddd 16(%rdi), %xmm6, %xmm6
- vpxor %xmm6, %xmm1, %xmm1
- vmovdqu IV(%rip), %xmm8
- vpshufb %xmm7, %xmm1, %xmm1
- vmovdqu 48(%rsi), %xmm5
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor 16(%rdi), %xmm8, %xmm9
- vmovdqu 32(%rsi), %xmm2
- vpblendw $12, %xmm3, %xmm5, %xmm13
- vshufps $221, %xmm5, %xmm2, %xmm12
- vpunpckhqdq %xmm2, %xmm4, %xmm14
- vpslld $20, %xmm9, %xmm0
- vpsrld $12, %xmm9, %xmm9
- vpxor %xmm0, %xmm9, %xmm0
- vshufps $221, %xmm3, %xmm4, %xmm9
- vpaddd %xmm9, %xmm6, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vmovdqa ROR328(%rip), %xmm6
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor %xmm8, %xmm0, %xmm0
- vpshufd $147, %xmm1, %xmm1
- vpshufd $78, %xmm8, %xmm8
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm10, %xmm0, %xmm0
- vshufps $136, %xmm5, %xmm2, %xmm10
- vpshufd $57, %xmm0, %xmm0
- vpaddd %xmm10, %xmm9, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpaddd %xmm12, %xmm9, %xmm9
- vpblendw $12, %xmm2, %xmm3, %xmm12
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor %xmm8, %xmm0, %xmm10
- vpslld $20, %xmm10, %xmm0
- vpsrld $12, %xmm10, %xmm10
- vpxor %xmm0, %xmm10, %xmm0
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor %xmm8, %xmm0, %xmm0
- vpshufd $57, %xmm1, %xmm1
- vpshufd $78, %xmm8, %xmm8
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm10, %xmm0, %xmm0
- vpslldq $4, %xmm5, %xmm10
- vpblendw $240, %xmm10, %xmm12, %xmm12
- vpshufd $147, %xmm0, %xmm0
- vpshufd $147, %xmm12, %xmm12
- vpaddd %xmm9, %xmm12, %xmm12
- vpaddd %xmm0, %xmm12, %xmm12
- vpxor %xmm12, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor %xmm8, %xmm0, %xmm11
- vpslld $20, %xmm11, %xmm9
- vpsrld $12, %xmm11, %xmm11
- vpxor %xmm9, %xmm11, %xmm0
- vpshufd $8, %xmm2, %xmm9
- vpblendw $192, %xmm5, %xmm3, %xmm11
- vpblendw $240, %xmm11, %xmm9, %xmm9
- vpshufd $177, %xmm9, %xmm9
- vpaddd %xmm12, %xmm9, %xmm9
- vpaddd %xmm0, %xmm9, %xmm11
- vpxor %xmm11, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm8
- vpxor %xmm8, %xmm0, %xmm9
- vpshufd $147, %xmm1, %xmm1
- vpshufd $78, %xmm8, %xmm8
- vpslld $25, %xmm9, %xmm0
- vpsrld $7, %xmm9, %xmm9
- vpxor %xmm0, %xmm9, %xmm0
- vpslldq $4, %xmm3, %xmm9
- vpblendw $48, %xmm9, %xmm2, %xmm9
- vpblendw $240, %xmm9, %xmm4, %xmm9
- vpshufd $57, %xmm0, %xmm0
- vpshufd $177, %xmm9, %xmm9
- vpaddd %xmm11, %xmm9, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm8, %xmm11
- vpxor %xmm11, %xmm0, %xmm0
- vpslld $20, %xmm0, %xmm8
- vpsrld $12, %xmm0, %xmm0
- vpxor %xmm8, %xmm0, %xmm0
- vpunpckhdq %xmm3, %xmm4, %xmm8
- vpblendw $12, %xmm10, %xmm8, %xmm12
- vpshufd $177, %xmm12, %xmm12
- vpaddd %xmm9, %xmm12, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm0
- vpshufd $57, %xmm1, %xmm1
- vpshufd $78, %xmm11, %xmm11
- vpslld $25, %xmm0, %xmm12
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm12, %xmm0, %xmm0
- vpunpckhdq %xmm5, %xmm2, %xmm12
- vpshufd $147, %xmm0, %xmm0
- vpblendw $15, %xmm13, %xmm12, %xmm12
- vpslldq $8, %xmm5, %xmm13
- vpshufd $210, %xmm12, %xmm12
- vpaddd %xmm9, %xmm12, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm0
- vpslld $20, %xmm0, %xmm12
- vpsrld $12, %xmm0, %xmm0
- vpxor %xmm12, %xmm0, %xmm0
- vpunpckldq %xmm4, %xmm2, %xmm12
- vpblendw $240, %xmm4, %xmm12, %xmm12
- vpblendw $192, %xmm13, %xmm12, %xmm12
- vpsrldq $12, %xmm3, %xmm13
- vpaddd %xmm12, %xmm9, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm0
- vpshufd $147, %xmm1, %xmm1
- vpshufd $78, %xmm11, %xmm11
- vpslld $25, %xmm0, %xmm12
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm12, %xmm0, %xmm0
- vpblendw $60, %xmm2, %xmm4, %xmm12
- vpblendw $3, %xmm13, %xmm12, %xmm12
- vpshufd $57, %xmm0, %xmm0
- vpshufd $78, %xmm12, %xmm12
- vpaddd %xmm9, %xmm12, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm12
- vpslld $20, %xmm12, %xmm13
- vpsrld $12, %xmm12, %xmm0
- vpblendw $51, %xmm3, %xmm4, %xmm12
- vpxor %xmm13, %xmm0, %xmm0
- vpblendw $192, %xmm10, %xmm12, %xmm10
- vpslldq $8, %xmm2, %xmm12
- vpshufd $27, %xmm10, %xmm10
- vpaddd %xmm9, %xmm10, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm0
- vpshufd $57, %xmm1, %xmm1
- vpshufd $78, %xmm11, %xmm11
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm10, %xmm0, %xmm0
- vpunpckhdq %xmm2, %xmm8, %xmm10
- vpshufd $147, %xmm0, %xmm0
- vpblendw $12, %xmm5, %xmm10, %xmm10
- vpshufd $210, %xmm10, %xmm10
- vpaddd %xmm9, %xmm10, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm11
- vpxor %xmm11, %xmm0, %xmm10
- vpslld $20, %xmm10, %xmm0
- vpsrld $12, %xmm10, %xmm10
- vpxor %xmm0, %xmm10, %xmm0
- vpblendw $12, %xmm4, %xmm5, %xmm10
- vpblendw $192, %xmm12, %xmm10, %xmm10
- vpunpckldq %xmm2, %xmm4, %xmm12
- vpshufd $135, %xmm10, %xmm10
- vpaddd %xmm9, %xmm10, %xmm9
- vpaddd %xmm0, %xmm9, %xmm9
- vpxor %xmm9, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm11, %xmm13
- vpxor %xmm13, %xmm0, %xmm0
- vpshufd $147, %xmm1, %xmm1
- vpshufd $78, %xmm13, %xmm13
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm10, %xmm0, %xmm0
- vpblendw $15, %xmm3, %xmm4, %xmm10
- vpblendw $192, %xmm5, %xmm10, %xmm10
- vpshufd $57, %xmm0, %xmm0
- vpshufd $198, %xmm10, %xmm10
- vpaddd %xmm9, %xmm10, %xmm10
- vpaddd %xmm0, %xmm10, %xmm10
- vpxor %xmm10, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm13, %xmm13
- vpxor %xmm13, %xmm0, %xmm9
- vpslld $20, %xmm9, %xmm0
- vpsrld $12, %xmm9, %xmm9
- vpxor %xmm0, %xmm9, %xmm0
- vpunpckhdq %xmm2, %xmm3, %xmm9
- vpunpcklqdq %xmm12, %xmm9, %xmm15
- vpunpcklqdq %xmm12, %xmm8, %xmm12
- vpblendw $15, %xmm5, %xmm8, %xmm8
- vpaddd %xmm15, %xmm10, %xmm15
- vpaddd %xmm0, %xmm15, %xmm15
- vpxor %xmm15, %xmm1, %xmm1
- vpshufd $141, %xmm8, %xmm8
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm13, %xmm13
- vpxor %xmm13, %xmm0, %xmm0
- vpshufd $57, %xmm1, %xmm1
- vpshufd $78, %xmm13, %xmm13
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm10, %xmm0, %xmm0
- vpunpcklqdq %xmm2, %xmm3, %xmm10
- vpshufd $147, %xmm0, %xmm0
- vpblendw $51, %xmm14, %xmm10, %xmm14
- vpshufd $135, %xmm14, %xmm14
- vpaddd %xmm15, %xmm14, %xmm14
- vpaddd %xmm0, %xmm14, %xmm14
- vpxor %xmm14, %xmm1, %xmm1
- vpunpcklqdq %xmm3, %xmm4, %xmm15
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm13, %xmm13
- vpxor %xmm13, %xmm0, %xmm0
- vpslld $20, %xmm0, %xmm11
- vpsrld $12, %xmm0, %xmm0
- vpxor %xmm11, %xmm0, %xmm0
- vpunpckhqdq %xmm5, %xmm3, %xmm11
- vpblendw $51, %xmm15, %xmm11, %xmm11
- vpunpckhqdq %xmm3, %xmm5, %xmm15
- vpaddd %xmm11, %xmm14, %xmm11
- vpaddd %xmm0, %xmm11, %xmm11
- vpxor %xmm11, %xmm1, %xmm1
- vpshufb %xmm6, %xmm1, %xmm1
- vpaddd %xmm1, %xmm13, %xmm13
- vpxor %xmm13, %xmm0, %xmm0
- vpshufd $147, %xmm1, %xmm1
- vpshufd $78, %xmm13, %xmm13
- vpslld $25, %xmm0, %xmm14
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm14, %xmm0, %xmm14
- vpunpckhqdq %xmm4, %xmm2, %xmm0
- vpshufd $57, %xmm14, %xmm14
- vpblendw $51, %xmm15, %xmm0, %xmm15
- vpaddd %xmm15, %xmm11, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm1, %xmm1
- vpshufb %xmm7, %xmm1, %xmm1
- vpaddd %xmm1, %xmm13, %xmm13
- vpxor %xmm13, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm11
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm11, %xmm14, %xmm14
- vpblendw $3, %xmm2, %xmm4, %xmm11
- vpslldq $8, %xmm11, %xmm0
- vpblendw $15, %xmm5, %xmm0, %xmm0
- vpshufd $99, %xmm0, %xmm0
- vpaddd %xmm15, %xmm0, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm1, %xmm0
- vpaddd %xmm12, %xmm15, %xmm15
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm0, %xmm13, %xmm13
- vpxor %xmm13, %xmm14, %xmm14
- vpshufd $57, %xmm0, %xmm0
- vpshufd $78, %xmm13, %xmm13
- vpslld $25, %xmm14, %xmm1
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm1, %xmm14, %xmm14
- vpblendw $3, %xmm5, %xmm4, %xmm1
- vpshufd $147, %xmm14, %xmm14
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm13, %xmm13
- vpxor %xmm13, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm12
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm12, %xmm14, %xmm14
- vpsrldq $4, %xmm2, %xmm12
- vpblendw $60, %xmm12, %xmm1, %xmm1
- vpaddd %xmm1, %xmm15, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpblendw $12, %xmm4, %xmm3, %xmm1
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm0, %xmm13, %xmm13
- vpxor %xmm13, %xmm14, %xmm14
- vpshufd $147, %xmm0, %xmm0
- vpshufd $78, %xmm13, %xmm13
- vpslld $25, %xmm14, %xmm12
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm12, %xmm14, %xmm14
- vpsrldq $4, %xmm5, %xmm12
- vpblendw $48, %xmm12, %xmm1, %xmm1
- vpshufd $33, %xmm5, %xmm12
- vpshufd $57, %xmm14, %xmm14
- vpshufd $108, %xmm1, %xmm1
- vpblendw $51, %xmm12, %xmm10, %xmm12
- vpaddd %xmm15, %xmm1, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpaddd %xmm12, %xmm15, %xmm15
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm13, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm13
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm13, %xmm14, %xmm14
- vpslldq $12, %xmm3, %xmm13
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpshufd $57, %xmm0, %xmm0
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm14, %xmm12
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm12, %xmm14, %xmm14
- vpblendw $51, %xmm5, %xmm4, %xmm12
- vpshufd $147, %xmm14, %xmm14
- vpblendw $192, %xmm13, %xmm12, %xmm12
- vpaddd %xmm12, %xmm15, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpsrldq $4, %xmm3, %xmm12
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm13
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm13, %xmm14, %xmm14
- vpblendw $48, %xmm2, %xmm5, %xmm13
- vpblendw $3, %xmm12, %xmm13, %xmm13
- vpshufd $156, %xmm13, %xmm13
- vpaddd %xmm15, %xmm13, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpshufd $147, %xmm0, %xmm0
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm14, %xmm13
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm13, %xmm14, %xmm14
- vpunpcklqdq %xmm2, %xmm4, %xmm13
- vpshufd $57, %xmm14, %xmm14
- vpblendw $12, %xmm12, %xmm13, %xmm12
- vpshufd $180, %xmm12, %xmm12
- vpaddd %xmm15, %xmm12, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm12
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm12, %xmm14, %xmm14
- vpunpckhqdq %xmm9, %xmm4, %xmm12
- vpshufd $198, %xmm12, %xmm12
- vpaddd %xmm15, %xmm12, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpaddd %xmm15, %xmm8, %xmm15
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpshufd $57, %xmm0, %xmm0
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm14, %xmm12
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm12, %xmm14, %xmm14
- vpsrldq $4, %xmm4, %xmm12
- vpshufd $147, %xmm14, %xmm14
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm15, %xmm0, %xmm0
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpslld $20, %xmm14, %xmm8
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm14, %xmm8, %xmm14
- vpblendw $48, %xmm5, %xmm2, %xmm8
- vpblendw $3, %xmm12, %xmm8, %xmm8
- vpunpckhqdq %xmm5, %xmm4, %xmm12
- vpshufd $75, %xmm8, %xmm8
- vpblendw $60, %xmm10, %xmm12, %xmm10
- vpaddd %xmm15, %xmm8, %xmm15
- vpaddd %xmm14, %xmm15, %xmm15
- vpxor %xmm0, %xmm15, %xmm0
- vpshufd $45, %xmm10, %xmm10
- vpshufb %xmm6, %xmm0, %xmm0
- vpaddd %xmm15, %xmm10, %xmm15
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm1, %xmm14, %xmm14
- vpshufd $147, %xmm0, %xmm0
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm14, %xmm8
- vpsrld $7, %xmm14, %xmm14
- vpxor %xmm14, %xmm8, %xmm8
- vpshufd $57, %xmm8, %xmm8
- vpaddd %xmm8, %xmm15, %xmm15
- vpxor %xmm0, %xmm15, %xmm0
- vpshufb %xmm7, %xmm0, %xmm0
- vpaddd %xmm0, %xmm1, %xmm1
- vpxor %xmm8, %xmm1, %xmm8
- vpslld $20, %xmm8, %xmm10
- vpsrld $12, %xmm8, %xmm8
- vpxor %xmm8, %xmm10, %xmm10
- vpunpckldq %xmm3, %xmm4, %xmm8
- vpunpcklqdq %xmm9, %xmm8, %xmm9
- vpaddd %xmm9, %xmm15, %xmm9
- vpaddd %xmm10, %xmm9, %xmm9
- vpxor %xmm0, %xmm9, %xmm8
- vpshufb %xmm6, %xmm8, %xmm8
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm1, %xmm10, %xmm10
- vpshufd $57, %xmm8, %xmm8
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm10, %xmm12
- vpsrld $7, %xmm10, %xmm10
- vpxor %xmm10, %xmm12, %xmm10
- vpblendw $48, %xmm4, %xmm3, %xmm12
- vpshufd $147, %xmm10, %xmm0
- vpunpckhdq %xmm5, %xmm3, %xmm10
- vpshufd $78, %xmm12, %xmm12
- vpunpcklqdq %xmm4, %xmm10, %xmm10
- vpblendw $192, %xmm2, %xmm10, %xmm10
- vpshufhw $78, %xmm10, %xmm10
- vpaddd %xmm10, %xmm9, %xmm10
- vpaddd %xmm0, %xmm10, %xmm10
- vpxor %xmm8, %xmm10, %xmm8
- vpshufb %xmm7, %xmm8, %xmm8
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm0, %xmm1, %xmm9
- vpslld $20, %xmm9, %xmm0
- vpsrld $12, %xmm9, %xmm9
- vpxor %xmm9, %xmm0, %xmm0
- vpunpckhdq %xmm5, %xmm4, %xmm9
- vpblendw $240, %xmm9, %xmm2, %xmm13
- vpshufd $39, %xmm13, %xmm13
- vpaddd %xmm10, %xmm13, %xmm10
- vpaddd %xmm0, %xmm10, %xmm10
- vpxor %xmm8, %xmm10, %xmm8
- vpblendw $12, %xmm4, %xmm2, %xmm13
- vpshufb %xmm6, %xmm8, %xmm8
- vpslldq $4, %xmm13, %xmm13
- vpblendw $15, %xmm5, %xmm13, %xmm13
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm1, %xmm0, %xmm0
- vpaddd %xmm13, %xmm10, %xmm13
- vpshufd $147, %xmm8, %xmm8
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm0, %xmm14
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm0, %xmm14, %xmm14
- vpshufd $57, %xmm14, %xmm14
- vpaddd %xmm14, %xmm13, %xmm13
- vpxor %xmm8, %xmm13, %xmm8
- vpaddd %xmm13, %xmm12, %xmm12
- vpshufb %xmm7, %xmm8, %xmm8
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm14, %xmm1, %xmm14
- vpslld $20, %xmm14, %xmm10
- vpsrld $12, %xmm14, %xmm14
- vpxor %xmm14, %xmm10, %xmm10
- vpaddd %xmm10, %xmm12, %xmm12
- vpxor %xmm8, %xmm12, %xmm8
- vpshufb %xmm6, %xmm8, %xmm8
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm1, %xmm10, %xmm0
- vpshufd $57, %xmm8, %xmm8
- vpshufd $78, %xmm1, %xmm1
- vpslld $25, %xmm0, %xmm10
- vpsrld $7, %xmm0, %xmm0
- vpxor %xmm0, %xmm10, %xmm10
- vpblendw $48, %xmm2, %xmm3, %xmm0
- vpblendw $15, %xmm11, %xmm0, %xmm0
- vpshufd $147, %xmm10, %xmm10
- vpshufd $114, %xmm0, %xmm0
- vpaddd %xmm12, %xmm0, %xmm0
- vpaddd %xmm10, %xmm0, %xmm0
- vpxor %xmm8, %xmm0, %xmm8
- vpshufb %xmm7, %xmm8, %xmm8
- vpaddd %xmm8, %xmm1, %xmm1
- vpxor %xmm10, %xmm1, %xmm10
- vpslld $20, %xmm10, %xmm11
- vpsrld $12, %xmm10, %xmm10
- vpxor %xmm10, %xmm11, %xmm10
- vpslldq $4, %xmm4, %xmm11
- vpblendw $192, %xmm11, %xmm3, %xmm3
- vpunpckldq %xmm5, %xmm4, %xmm4
- vpshufd $99, %xmm3, %xmm3
- vpaddd %xmm0, %xmm3, %xmm3
- vpaddd %xmm10, %xmm3, %xmm3
- vpxor %xmm8, %xmm3, %xmm11
- vpunpckldq %xmm5, %xmm2, %xmm0
- vpblendw $192, %xmm2, %xmm5, %xmm2
- vpshufb %xmm6, %xmm11, %xmm11
- vpunpckhqdq %xmm0, %xmm9, %xmm0
- vpblendw $15, %xmm4, %xmm2, %xmm4
- vpaddd %xmm11, %xmm1, %xmm1
- vpxor %xmm1, %xmm10, %xmm10
- vpshufd $147, %xmm11, %xmm11
- vpshufd $201, %xmm0, %xmm0
- vpslld $25, %xmm10, %xmm8
- vpsrld $7, %xmm10, %xmm10
- vpxor %xmm10, %xmm8, %xmm10
- vpshufd $78, %xmm1, %xmm1
- vpaddd %xmm3, %xmm0, %xmm0
- vpshufd $27, %xmm4, %xmm4
- vpshufd $57, %xmm10, %xmm10
- vpaddd %xmm10, %xmm0, %xmm0
- vpxor %xmm11, %xmm0, %xmm11
- vpaddd %xmm0, %xmm4, %xmm0
- vpshufb %xmm7, %xmm11, %xmm7
- vpaddd %xmm7, %xmm1, %xmm1
- vpxor %xmm10, %xmm1, %xmm10
- vpslld $20, %xmm10, %xmm8
- vpsrld $12, %xmm10, %xmm10
- vpxor %xmm10, %xmm8, %xmm8
- vpaddd %xmm8, %xmm0, %xmm0
- vpxor %xmm7, %xmm0, %xmm7
- vpshufb %xmm6, %xmm7, %xmm6
- vpaddd %xmm6, %xmm1, %xmm1
- vpxor %xmm1, %xmm8, %xmm8
- vpshufd $78, %xmm1, %xmm1
- vpshufd $57, %xmm6, %xmm6
- vpslld $25, %xmm8, %xmm2
- vpsrld $7, %xmm8, %xmm8
- vpxor %xmm8, %xmm2, %xmm8
- vpxor (%rdi), %xmm1, %xmm1
- vpshufd $147, %xmm8, %xmm8
- vpxor %xmm0, %xmm1, %xmm0
- vmovups %xmm0, (%rdi)
- vpxor 16(%rdi), %xmm8, %xmm0
- vpxor %xmm6, %xmm0, %xmm6
- vmovups %xmm6, 16(%rdi)
- addq $64, %rsi
- decq %rdx
- jnz .Lbeginofloop
+ movdqa %xmm0,%xmm10
+ movdqa %xmm1,%xmm11
+ paddq %xmm15,%xmm14
+ movdqa IV(%rip),%xmm2
+ movdqa %xmm14,%xmm3
+ pxor IV+0x10(%rip),%xmm3
+ movl 0x8(%rsi),%r8d
+ movl 0x18(%rsi),%r9d
+ movl (%rsi),%r10d
+ movl 0x10(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0xc(%rsi),%r8d
+ movl 0x1c(%rsi),%r9d
+ movl 0x4(%rsi),%r10d
+ movl 0x14(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x20(%rsi),%r8d
+ movl 0x30(%rsi),%r9d
+ movl 0x38(%rsi),%r10d
+ movl 0x28(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x24(%rsi),%r8d
+ movl 0x34(%rsi),%r9d
+ movl 0x3c(%rsi),%r10d
+ movl 0x2c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x10(%rsi),%r8d
+ movl 0x34(%rsi),%r9d
+ movl 0x38(%rsi),%r10d
+ movl 0x24(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x20(%rsi),%r8d
+ movl 0x18(%rsi),%r9d
+ movl 0x28(%rsi),%r10d
+ movl 0x3c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x4(%rsi),%r8d
+ movl 0x2c(%rsi),%r9d
+ movl 0x14(%rsi),%r10d
+ movl (%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x30(%rsi),%r8d
+ movl 0x1c(%rsi),%r9d
+ movl 0xc(%rsi),%r10d
+ movl 0x8(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x30(%rsi),%r8d
+ movl 0x3c(%rsi),%r9d
+ movl 0x2c(%rsi),%r10d
+ movl 0x14(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl (%rsi),%r8d
+ movl 0x34(%rsi),%r9d
+ movl 0x20(%rsi),%r10d
+ movl 0x8(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x28(%rsi),%r8d
+ movl 0x1c(%rsi),%r9d
+ movl 0x24(%rsi),%r10d
+ movl 0xc(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x38(%rsi),%r8d
+ movl 0x4(%rsi),%r9d
+ movl 0x10(%rsi),%r10d
+ movl 0x18(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0xc(%rsi),%r8d
+ movl 0x2c(%rsi),%r9d
+ movl 0x1c(%rsi),%r10d
+ movl 0x34(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x4(%rsi),%r8d
+ movl 0x38(%rsi),%r9d
+ movl 0x24(%rsi),%r10d
+ movl 0x30(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x8(%rsi),%r8d
+ movl 0x10(%rsi),%r9d
+ movl 0x3c(%rsi),%r10d
+ movl 0x14(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x18(%rsi),%r8d
+ movl (%rsi),%r9d
+ movl 0x20(%rsi),%r10d
+ movl 0x28(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x14(%rsi),%r8d
+ movl 0x28(%rsi),%r9d
+ movl 0x24(%rsi),%r10d
+ movl 0x8(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x1c(%rsi),%r8d
+ movl 0x3c(%rsi),%r9d
+ movl (%rsi),%r10d
+ movl 0x10(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x38(%rsi),%r8d
+ movl 0x18(%rsi),%r9d
+ movl 0xc(%rsi),%r10d
+ movl 0x2c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x4(%rsi),%r8d
+ movl 0x20(%rsi),%r9d
+ movl 0x34(%rsi),%r10d
+ movl 0x30(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x18(%rsi),%r8d
+ movl 0x20(%rsi),%r9d
+ movl 0x8(%rsi),%r10d
+ movl (%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x28(%rsi),%r8d
+ movl 0xc(%rsi),%r9d
+ movl 0x30(%rsi),%r10d
+ movl 0x2c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x10(%rsi),%r8d
+ movl 0x3c(%rsi),%r9d
+ movl 0x4(%rsi),%r10d
+ movl 0x1c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x34(%rsi),%r8d
+ movl 0x38(%rsi),%r9d
+ movl 0x24(%rsi),%r10d
+ movl 0x14(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x4(%rsi),%r8d
+ movl 0x10(%rsi),%r9d
+ movl 0x30(%rsi),%r10d
+ movl 0x38(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x3c(%rsi),%r8d
+ movl 0x28(%rsi),%r9d
+ movl 0x14(%rsi),%r10d
+ movl 0x34(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl (%rsi),%r8d
+ movl 0x24(%rsi),%r9d
+ movl 0x20(%rsi),%r10d
+ movl 0x18(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x1c(%rsi),%r8d
+ movl 0x8(%rsi),%r9d
+ movl 0x2c(%rsi),%r10d
+ movl 0xc(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x1c(%rsi),%r8d
+ movl 0xc(%rsi),%r9d
+ movl 0x34(%rsi),%r10d
+ movl 0x30(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x38(%rsi),%r8d
+ movl 0x24(%rsi),%r9d
+ movl 0x2c(%rsi),%r10d
+ movl 0x4(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x14(%rsi),%r8d
+ movl 0x20(%rsi),%r9d
+ movl 0x8(%rsi),%r10d
+ movl 0x3c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl (%rsi),%r8d
+ movl 0x18(%rsi),%r9d
+ movl 0x28(%rsi),%r10d
+ movl 0x10(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x38(%rsi),%r8d
+ movl (%rsi),%r9d
+ movl 0x18(%rsi),%r10d
+ movl 0x2c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x24(%rsi),%r8d
+ movl 0x20(%rsi),%r9d
+ movl 0x3c(%rsi),%r10d
+ movl 0xc(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x30(%rsi),%r8d
+ movl 0x4(%rsi),%r9d
+ movl 0x28(%rsi),%r10d
+ movl 0x34(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x8(%rsi),%r8d
+ movl 0x10(%rsi),%r9d
+ movl 0x14(%rsi),%r10d
+ movl 0x1c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ movl 0x20(%rsi),%r8d
+ movl 0x4(%rsi),%r9d
+ movl 0x28(%rsi),%r10d
+ movl 0x1c(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm4
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm4
+ paddd %xmm4,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x10(%rsi),%r8d
+ movl 0x14(%rsi),%r9d
+ movl 0x8(%rsi),%r10d
+ movl 0x18(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm5
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm5
+ paddd %xmm5,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x93,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x39,%xmm2,%xmm2
+ movl 0x3c(%rsi),%r8d
+ movl 0xc(%rsi),%r9d
+ movl 0x34(%rsi),%r10d
+ movl 0x24(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm6
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm6
+ paddd %xmm6,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm12,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0xc,%xmm1
+ pslld $0x14,%xmm8
+ por %xmm8,%xmm1
+ movl 0x2c(%rsi),%r8d
+ movl 0x30(%rsi),%r9d
+ movl (%rsi),%r10d
+ movl 0x38(%rsi),%r11d
+ shlq $0x20,%r8
+ shlq $0x20,%r9
+ orq %r10,%r8
+ orq %r11,%r9
+ movq %r8,%xmm7
+ movq %r9,%xmm8
+ punpcklqdq %xmm8,%xmm7
+ paddd %xmm7,%xmm0
+ paddd %xmm1,%xmm0
+ pxor %xmm0,%xmm3
+ pshufb %xmm13,%xmm3
+ paddd %xmm3,%xmm2
+ pxor %xmm2,%xmm1
+ movdqa %xmm1,%xmm8
+ psrld $0x7,%xmm1
+ pslld $0x19,%xmm8
+ por %xmm8,%xmm1
+ pshufd $0x39,%xmm0,%xmm0
+ pshufd $0x4e,%xmm3,%xmm3
+ pshufd $0x93,%xmm2,%xmm2
+ pxor %xmm2,%xmm0
+ pxor %xmm3,%xmm1
+ pxor %xmm10,%xmm0
+ pxor %xmm11,%xmm1
+ addq $0x40,%rsi
+ decq %rdx
+ jnz .Lbeginofloop
+ movdqu %xmm0,(%rdi)
+ movdqu %xmm1,0x10(%rdi)
+ movdqu %xmm14,0x20(%rdi)
.Lendofloop:
ret
-ENDPROC(blake2s_compress_avx)
-#endif /* CONFIG_AS_AVX */
+ENDPROC(blake2s_compress_ssse3)
+#endif /* CONFIG_AS_SSSE3 */
#ifdef CONFIG_AS_AVX512
ENTRY(blake2s_compress_avx512)
@@ -647,9 +1011,9 @@ ENTRY(blake2s_compress_avx512)
vpaddd %xmm3,%xmm2,%xmm2
vpxor %xmm2,%xmm1,%xmm1
vprord $0x7,%xmm1,%xmm1
- vpshufd $0x39,%xmm1,%xmm1
- vpshufd $0x4e,%xmm2,%xmm2
- vpshufd $0x93,%xmm3,%xmm3
+ vpshufd $0x93,%xmm0,%xmm0
+ vpshufd $0x4e,%xmm3,%xmm3
+ vpshufd $0x39,%xmm2,%xmm2
vpaddd %xmm9,%xmm0,%xmm0
vpaddd %xmm1,%xmm0,%xmm0
vpxor %xmm0,%xmm3,%xmm3
@@ -665,9 +1029,9 @@ ENTRY(blake2s_compress_avx512)
vpaddd %xmm3,%xmm2,%xmm2
vpxor %xmm2,%xmm1,%xmm1
vprord $0x7,%xmm1,%xmm1
- vpshufd $0x93,%xmm1,%xmm1
- vpshufd $0x4e,%xmm2,%xmm2
- vpshufd $0x39,%xmm3,%xmm3
+ vpshufd $0x39,%xmm0,%xmm0
+ vpshufd $0x4e,%xmm3,%xmm3
+ vpshufd $0x93,%xmm2,%xmm2
decb %cl
jne .Lblake2s_compress_avx512_roundloop
vpxor %xmm10,%xmm0,%xmm0