2020-08-23 23:25:15 +02:00
|
|
|
#if defined(__ELF__) && defined(__linux__)
|
|
|
|
.section .note.GNU-stack,"",%progbits
|
|
|
|
#endif
|
|
|
|
|
2020-07-30 01:03:37 +02:00
|
|
|
#if defined(__ELF__) && defined(__CET__) && defined(__has_include)
|
|
|
|
#if __has_include(<cet.h>)
|
2020-06-26 19:39:17 +02:00
|
|
|
#include <cet.h>
|
2020-07-30 01:03:37 +02:00
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(_CET_ENDBR)
|
2020-06-26 19:39:17 +02:00
|
|
|
#define _CET_ENDBR
|
|
|
|
#endif
|
2020-02-11 18:25:30 +01:00
|
|
|
|
2020-06-26 19:39:17 +02:00
|
|
|
.intel_syntax noprefix
|
2020-02-11 18:25:30 +01:00
|
|
|
.global _blake3_hash_many_avx512
|
|
|
|
.global blake3_hash_many_avx512
|
|
|
|
.global blake3_compress_in_place_avx512
|
|
|
|
.global _blake3_compress_in_place_avx512
|
|
|
|
.global blake3_compress_xof_avx512
|
|
|
|
.global _blake3_compress_xof_avx512
|
|
|
|
|
|
|
|
#ifdef __APPLE__
|
|
|
|
.text
|
|
|
|
#else
|
|
|
|
.section .text
|
|
|
|
#endif
|
|
|
|
.p2align 6
|
|
|
|
_blake3_hash_many_avx512:
|
|
|
|
blake3_hash_many_avx512:
|
2020-06-26 19:39:17 +02:00
|
|
|
_CET_ENDBR
|
2020-02-11 18:25:30 +01:00
|
|
|
push r15
|
|
|
|
push r14
|
|
|
|
push r13
|
|
|
|
push r12
|
|
|
|
push rbx
|
|
|
|
push rbp
|
|
|
|
mov rbp, rsp
|
|
|
|
sub rsp, 144
|
|
|
|
and rsp, 0xFFFFFFFFFFFFFFC0
|
|
|
|
neg r9
|
|
|
|
kmovw k1, r9d
|
|
|
|
vmovd xmm0, r8d
|
|
|
|
vpbroadcastd ymm0, xmm0
|
|
|
|
shr r8, 32
|
|
|
|
vmovd xmm1, r8d
|
|
|
|
vpbroadcastd ymm1, xmm1
|
|
|
|
vmovdqa ymm4, ymm1
|
|
|
|
vmovdqa ymm5, ymm1
|
|
|
|
vpaddd ymm2, ymm0, ymmword ptr [ADD0+rip]
|
|
|
|
vpaddd ymm3, ymm0, ymmword ptr [ADD0+32+rip]
|
|
|
|
vpcmpltud k2, ymm2, ymm0
|
|
|
|
vpcmpltud k3, ymm3, ymm0
|
|
|
|
vpaddd ymm4 {k2}, ymm4, dword ptr [ADD1+rip] {1to8}
|
|
|
|
vpaddd ymm5 {k3}, ymm5, dword ptr [ADD1+rip] {1to8}
|
|
|
|
knotw k2, k1
|
|
|
|
vmovdqa32 ymm2 {k2}, ymm0
|
|
|
|
vmovdqa32 ymm3 {k2}, ymm0
|
|
|
|
vmovdqa32 ymm4 {k2}, ymm1
|
|
|
|
vmovdqa32 ymm5 {k2}, ymm1
|
|
|
|
vmovdqa ymmword ptr [rsp], ymm2
|
|
|
|
vmovdqa ymmword ptr [rsp+0x1*0x20], ymm3
|
|
|
|
vmovdqa ymmword ptr [rsp+0x2*0x20], ymm4
|
|
|
|
vmovdqa ymmword ptr [rsp+0x3*0x20], ymm5
|
|
|
|
shl rdx, 6
|
|
|
|
mov qword ptr [rsp+0x80], rdx
|
|
|
|
cmp rsi, 16
|
|
|
|
jc 3f
|
|
|
|
2:
|
|
|
|
vpbroadcastd zmm0, dword ptr [rcx]
|
|
|
|
vpbroadcastd zmm1, dword ptr [rcx+0x1*0x4]
|
|
|
|
vpbroadcastd zmm2, dword ptr [rcx+0x2*0x4]
|
|
|
|
vpbroadcastd zmm3, dword ptr [rcx+0x3*0x4]
|
|
|
|
vpbroadcastd zmm4, dword ptr [rcx+0x4*0x4]
|
|
|
|
vpbroadcastd zmm5, dword ptr [rcx+0x5*0x4]
|
|
|
|
vpbroadcastd zmm6, dword ptr [rcx+0x6*0x4]
|
|
|
|
vpbroadcastd zmm7, dword ptr [rcx+0x7*0x4]
|
|
|
|
movzx eax, byte ptr [rbp+0x38]
|
|
|
|
movzx ebx, byte ptr [rbp+0x40]
|
|
|
|
or eax, ebx
|
|
|
|
xor edx, edx
|
|
|
|
.p2align 5
|
2020-02-13 14:46:32 +01:00
|
|
|
9:
|
2020-02-11 18:25:30 +01:00
|
|
|
movzx ebx, byte ptr [rbp+0x48]
|
|
|
|
or ebx, eax
|
|
|
|
add rdx, 64
|
|
|
|
cmp rdx, qword ptr [rsp+0x80]
|
|
|
|
cmove eax, ebx
|
|
|
|
mov dword ptr [rsp+0x88], eax
|
|
|
|
mov r8, qword ptr [rdi]
|
|
|
|
mov r9, qword ptr [rdi+0x8]
|
|
|
|
mov r10, qword ptr [rdi+0x10]
|
|
|
|
mov r11, qword ptr [rdi+0x18]
|
|
|
|
mov r12, qword ptr [rdi+0x40]
|
|
|
|
mov r13, qword ptr [rdi+0x48]
|
|
|
|
mov r14, qword ptr [rdi+0x50]
|
|
|
|
mov r15, qword ptr [rdi+0x58]
|
|
|
|
vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm8, zmm16, zmm17
|
|
|
|
vpunpckhqdq zmm9, zmm16, zmm17
|
|
|
|
vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm10, zmm18, zmm19
|
|
|
|
vpunpckhqdq zmm11, zmm18, zmm19
|
|
|
|
mov r8, qword ptr [rdi+0x20]
|
|
|
|
mov r9, qword ptr [rdi+0x28]
|
|
|
|
mov r10, qword ptr [rdi+0x30]
|
|
|
|
mov r11, qword ptr [rdi+0x38]
|
|
|
|
mov r12, qword ptr [rdi+0x60]
|
|
|
|
mov r13, qword ptr [rdi+0x68]
|
|
|
|
mov r14, qword ptr [rdi+0x70]
|
|
|
|
mov r15, qword ptr [rdi+0x78]
|
|
|
|
vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm12, zmm16, zmm17
|
|
|
|
vpunpckhqdq zmm13, zmm16, zmm17
|
|
|
|
vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm14, zmm18, zmm19
|
|
|
|
vpunpckhqdq zmm15, zmm18, zmm19
|
|
|
|
vmovdqa32 zmm27, zmmword ptr [INDEX0+rip]
|
|
|
|
vmovdqa32 zmm31, zmmword ptr [INDEX1+rip]
|
|
|
|
vshufps zmm16, zmm8, zmm10, 136
|
|
|
|
vshufps zmm17, zmm12, zmm14, 136
|
|
|
|
vmovdqa32 zmm20, zmm16
|
|
|
|
vpermt2d zmm16, zmm27, zmm17
|
|
|
|
vpermt2d zmm20, zmm31, zmm17
|
|
|
|
vshufps zmm17, zmm8, zmm10, 221
|
|
|
|
vshufps zmm30, zmm12, zmm14, 221
|
|
|
|
vmovdqa32 zmm21, zmm17
|
|
|
|
vpermt2d zmm17, zmm27, zmm30
|
|
|
|
vpermt2d zmm21, zmm31, zmm30
|
|
|
|
vshufps zmm18, zmm9, zmm11, 136
|
|
|
|
vshufps zmm8, zmm13, zmm15, 136
|
|
|
|
vmovdqa32 zmm22, zmm18
|
|
|
|
vpermt2d zmm18, zmm27, zmm8
|
|
|
|
vpermt2d zmm22, zmm31, zmm8
|
|
|
|
vshufps zmm19, zmm9, zmm11, 221
|
|
|
|
vshufps zmm8, zmm13, zmm15, 221
|
|
|
|
vmovdqa32 zmm23, zmm19
|
|
|
|
vpermt2d zmm19, zmm27, zmm8
|
|
|
|
vpermt2d zmm23, zmm31, zmm8
|
|
|
|
mov r8, qword ptr [rdi]
|
|
|
|
mov r9, qword ptr [rdi+0x8]
|
|
|
|
mov r10, qword ptr [rdi+0x10]
|
|
|
|
mov r11, qword ptr [rdi+0x18]
|
|
|
|
mov r12, qword ptr [rdi+0x40]
|
|
|
|
mov r13, qword ptr [rdi+0x48]
|
|
|
|
mov r14, qword ptr [rdi+0x50]
|
|
|
|
mov r15, qword ptr [rdi+0x58]
|
|
|
|
vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm8, zmm24, zmm25
|
|
|
|
vpunpckhqdq zmm9, zmm24, zmm25
|
|
|
|
vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm10, zmm24, zmm25
|
|
|
|
vpunpckhqdq zmm11, zmm24, zmm25
|
|
|
|
prefetcht0 [r8+rdx+0x80]
|
|
|
|
prefetcht0 [r12+rdx+0x80]
|
|
|
|
prefetcht0 [r9+rdx+0x80]
|
|
|
|
prefetcht0 [r13+rdx+0x80]
|
|
|
|
prefetcht0 [r10+rdx+0x80]
|
|
|
|
prefetcht0 [r14+rdx+0x80]
|
|
|
|
prefetcht0 [r11+rdx+0x80]
|
|
|
|
prefetcht0 [r15+rdx+0x80]
|
|
|
|
mov r8, qword ptr [rdi+0x20]
|
|
|
|
mov r9, qword ptr [rdi+0x28]
|
|
|
|
mov r10, qword ptr [rdi+0x30]
|
|
|
|
mov r11, qword ptr [rdi+0x38]
|
|
|
|
mov r12, qword ptr [rdi+0x60]
|
|
|
|
mov r13, qword ptr [rdi+0x68]
|
|
|
|
mov r14, qword ptr [rdi+0x70]
|
|
|
|
mov r15, qword ptr [rdi+0x78]
|
|
|
|
vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm12, zmm24, zmm25
|
|
|
|
vpunpckhqdq zmm13, zmm24, zmm25
|
|
|
|
vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
|
2020-04-12 12:36:10 +02:00
|
|
|
vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
|
2020-02-11 18:25:30 +01:00
|
|
|
vpunpcklqdq zmm14, zmm24, zmm25
|
|
|
|
vpunpckhqdq zmm15, zmm24, zmm25
|
|
|
|
prefetcht0 [r8+rdx+0x80]
|
|
|
|
prefetcht0 [r12+rdx+0x80]
|
|
|
|
prefetcht0 [r9+rdx+0x80]
|
|
|
|
prefetcht0 [r13+rdx+0x80]
|
|
|
|
prefetcht0 [r10+rdx+0x80]
|
|
|
|
prefetcht0 [r14+rdx+0x80]
|
|
|
|
prefetcht0 [r11+rdx+0x80]
|
|
|
|
prefetcht0 [r15+rdx+0x80]
|
|
|
|
vshufps zmm24, zmm8, zmm10, 136
|
|
|
|
vshufps zmm30, zmm12, zmm14, 136
|
|
|
|
vmovdqa32 zmm28, zmm24
|
|
|
|
vpermt2d zmm24, zmm27, zmm30
|
|
|
|
vpermt2d zmm28, zmm31, zmm30
|
|
|
|
vshufps zmm25, zmm8, zmm10, 221
|
|
|
|
vshufps zmm30, zmm12, zmm14, 221
|
|
|
|
vmovdqa32 zmm29, zmm25
|
|
|
|
vpermt2d zmm25, zmm27, zmm30
|
|
|
|
vpermt2d zmm29, zmm31, zmm30
|
|
|
|
vshufps zmm26, zmm9, zmm11, 136
|
|
|
|
vshufps zmm8, zmm13, zmm15, 136
|
|
|
|
vmovdqa32 zmm30, zmm26
|
|
|
|
vpermt2d zmm26, zmm27, zmm8
|
|
|
|
vpermt2d zmm30, zmm31, zmm8
|
|
|
|
vshufps zmm8, zmm9, zmm11, 221
|
|
|
|
vshufps zmm10, zmm13, zmm15, 221
|
|
|
|
vpermi2d zmm27, zmm8, zmm10
|
|
|
|
vpermi2d zmm31, zmm8, zmm10
|
|
|
|
vpbroadcastd zmm8, dword ptr [BLAKE3_IV_0+rip]
|
|
|
|
vpbroadcastd zmm9, dword ptr [BLAKE3_IV_1+rip]
|
|
|
|
vpbroadcastd zmm10, dword ptr [BLAKE3_IV_2+rip]
|
|
|
|
vpbroadcastd zmm11, dword ptr [BLAKE3_IV_3+rip]
|
|
|
|
vmovdqa32 zmm12, zmmword ptr [rsp]
|
|
|
|
vmovdqa32 zmm13, zmmword ptr [rsp+0x1*0x40]
|
|
|
|
vpbroadcastd zmm14, dword ptr [BLAKE3_BLOCK_LEN+rip]
|
|
|
|
vpbroadcastd zmm15, dword ptr [rsp+0x22*0x4]
|
|
|
|
vpaddd zmm0, zmm0, zmm16
|
|
|
|
vpaddd zmm1, zmm1, zmm18
|
|
|
|
vpaddd zmm2, zmm2, zmm20
|
|
|
|
vpaddd zmm3, zmm3, zmm22
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm17
|
|
|
|
vpaddd zmm1, zmm1, zmm19
|
|
|
|
vpaddd zmm2, zmm2, zmm21
|
|
|
|
vpaddd zmm3, zmm3, zmm23
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm24
|
|
|
|
vpaddd zmm1, zmm1, zmm26
|
|
|
|
vpaddd zmm2, zmm2, zmm28
|
|
|
|
vpaddd zmm3, zmm3, zmm30
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm25
|
|
|
|
vpaddd zmm1, zmm1, zmm27
|
|
|
|
vpaddd zmm2, zmm2, zmm29
|
|
|
|
vpaddd zmm3, zmm3, zmm31
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm18
|
|
|
|
vpaddd zmm1, zmm1, zmm19
|
|
|
|
vpaddd zmm2, zmm2, zmm23
|
|
|
|
vpaddd zmm3, zmm3, zmm20
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm22
|
|
|
|
vpaddd zmm1, zmm1, zmm26
|
|
|
|
vpaddd zmm2, zmm2, zmm16
|
|
|
|
vpaddd zmm3, zmm3, zmm29
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm17
|
|
|
|
vpaddd zmm1, zmm1, zmm28
|
|
|
|
vpaddd zmm2, zmm2, zmm25
|
|
|
|
vpaddd zmm3, zmm3, zmm31
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm27
|
|
|
|
vpaddd zmm1, zmm1, zmm21
|
|
|
|
vpaddd zmm2, zmm2, zmm30
|
|
|
|
vpaddd zmm3, zmm3, zmm24
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm19
|
|
|
|
vpaddd zmm1, zmm1, zmm26
|
|
|
|
vpaddd zmm2, zmm2, zmm29
|
|
|
|
vpaddd zmm3, zmm3, zmm23
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm20
|
|
|
|
vpaddd zmm1, zmm1, zmm28
|
|
|
|
vpaddd zmm2, zmm2, zmm18
|
|
|
|
vpaddd zmm3, zmm3, zmm30
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm22
|
|
|
|
vpaddd zmm1, zmm1, zmm25
|
|
|
|
vpaddd zmm2, zmm2, zmm27
|
|
|
|
vpaddd zmm3, zmm3, zmm24
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm21
|
|
|
|
vpaddd zmm1, zmm1, zmm16
|
|
|
|
vpaddd zmm2, zmm2, zmm31
|
|
|
|
vpaddd zmm3, zmm3, zmm17
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm26
|
|
|
|
vpaddd zmm1, zmm1, zmm28
|
|
|
|
vpaddd zmm2, zmm2, zmm30
|
|
|
|
vpaddd zmm3, zmm3, zmm29
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm23
|
|
|
|
vpaddd zmm1, zmm1, zmm25
|
|
|
|
vpaddd zmm2, zmm2, zmm19
|
|
|
|
vpaddd zmm3, zmm3, zmm31
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm20
|
|
|
|
vpaddd zmm1, zmm1, zmm27
|
|
|
|
vpaddd zmm2, zmm2, zmm21
|
|
|
|
vpaddd zmm3, zmm3, zmm17
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm16
|
|
|
|
vpaddd zmm1, zmm1, zmm18
|
|
|
|
vpaddd zmm2, zmm2, zmm24
|
|
|
|
vpaddd zmm3, zmm3, zmm22
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm28
|
|
|
|
vpaddd zmm1, zmm1, zmm25
|
|
|
|
vpaddd zmm2, zmm2, zmm31
|
|
|
|
vpaddd zmm3, zmm3, zmm30
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm29
|
|
|
|
vpaddd zmm1, zmm1, zmm27
|
|
|
|
vpaddd zmm2, zmm2, zmm26
|
|
|
|
vpaddd zmm3, zmm3, zmm24
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm23
|
|
|
|
vpaddd zmm1, zmm1, zmm21
|
|
|
|
vpaddd zmm2, zmm2, zmm16
|
|
|
|
vpaddd zmm3, zmm3, zmm22
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm18
|
|
|
|
vpaddd zmm1, zmm1, zmm19
|
|
|
|
vpaddd zmm2, zmm2, zmm17
|
|
|
|
vpaddd zmm3, zmm3, zmm20
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm25
|
|
|
|
vpaddd zmm1, zmm1, zmm27
|
|
|
|
vpaddd zmm2, zmm2, zmm24
|
|
|
|
vpaddd zmm3, zmm3, zmm31
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm30
|
|
|
|
vpaddd zmm1, zmm1, zmm21
|
|
|
|
vpaddd zmm2, zmm2, zmm28
|
|
|
|
vpaddd zmm3, zmm3, zmm17
|
|
|
|
vpaddd zmm0, zmm0, zmm4
|
|
|
|
vpaddd zmm1, zmm1, zmm5
|
|
|
|
vpaddd zmm2, zmm2, zmm6
|
|
|
|
vpaddd zmm3, zmm3, zmm7
|
|
|
|
vpxord zmm12, zmm12, zmm0
|
|
|
|
vpxord zmm13, zmm13, zmm1
|
|
|
|
vpxord zmm14, zmm14, zmm2
|
|
|
|
vpxord zmm15, zmm15, zmm3
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vpaddd zmm8, zmm8, zmm12
|
|
|
|
vpaddd zmm9, zmm9, zmm13
|
|
|
|
vpaddd zmm10, zmm10, zmm14
|
|
|
|
vpaddd zmm11, zmm11, zmm15
|
|
|
|
vpxord zmm4, zmm4, zmm8
|
|
|
|
vpxord zmm5, zmm5, zmm9
|
|
|
|
vpxord zmm6, zmm6, zmm10
|
|
|
|
vpxord zmm7, zmm7, zmm11
|
|
|
|
vprord zmm4, zmm4, 7
|
|
|
|
vprord zmm5, zmm5, 7
|
|
|
|
vprord zmm6, zmm6, 7
|
|
|
|
vprord zmm7, zmm7, 7
|
|
|
|
vpaddd zmm0, zmm0, zmm29
|
|
|
|
vpaddd zmm1, zmm1, zmm16
|
|
|
|
vpaddd zmm2, zmm2, zmm18
|
|
|
|
vpaddd zmm3, zmm3, zmm20
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 16
|
|
|
|
vprord zmm12, zmm12, 16
|
|
|
|
vprord zmm13, zmm13, 16
|
|
|
|
vprord zmm14, zmm14, 16
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
vpxord zmm6, zmm6, zmm11
|
|
|
|
vpxord zmm7, zmm7, zmm8
|
|
|
|
vpxord zmm4, zmm4, zmm9
|
|
|
|
vprord zmm5, zmm5, 12
|
|
|
|
vprord zmm6, zmm6, 12
|
|
|
|
vprord zmm7, zmm7, 12
|
|
|
|
vprord zmm4, zmm4, 12
|
|
|
|
vpaddd zmm0, zmm0, zmm19
|
|
|
|
vpaddd zmm1, zmm1, zmm26
|
|
|
|
vpaddd zmm2, zmm2, zmm22
|
|
|
|
vpaddd zmm3, zmm3, zmm23
|
|
|
|
vpaddd zmm0, zmm0, zmm5
|
|
|
|
vpaddd zmm1, zmm1, zmm6
|
|
|
|
vpaddd zmm2, zmm2, zmm7
|
|
|
|
vpaddd zmm3, zmm3, zmm4
|
|
|
|
vpxord zmm15, zmm15, zmm0
|
|
|
|
vpxord zmm12, zmm12, zmm1
|
|
|
|
vpxord zmm13, zmm13, zmm2
|
|
|
|
vpxord zmm14, zmm14, zmm3
|
|
|
|
vprord zmm15, zmm15, 8
|
|
|
|
vprord zmm12, zmm12, 8
|
|
|
|
vprord zmm13, zmm13, 8
|
|
|
|
vprord zmm14, zmm14, 8
|
|
|
|
vpaddd zmm10, zmm10, zmm15
|
|
|
|
vpaddd zmm11, zmm11, zmm12
|
|
|
|
vpaddd zmm8, zmm8, zmm13
|
|
|
|
vpaddd zmm9, zmm9, zmm14
|
|
|
|
vpxord zmm5, zmm5, zmm10
|
|
|
|
|