/* wc_mldsa_asm.S */
/*
 * Copyright (C) 2006-2026 wolfSSL Inc.
 *
 * This file is part of wolfSSL.
 *
 * wolfSSL is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * wolfSSL is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
 */

#ifdef WOLFSSL_USER_SETTINGS
#ifdef WOLFSSL_USER_SETTINGS_ASM
/*
 * user_settings_asm.h is a file generated by the script user_settings_asm.sh.
 * The script takes in a user_settings.h and produces user_settings_asm.h, which
 * is a stripped down version of user_settings.h containing only preprocessor
 * directives. This makes the header safe to include in assembly (.S) files.
 */
#include "user_settings_asm.h"
#else
/*
 * Note: if user_settings.h contains any C code (e.g. a typedef or function
 * prototype), including it here in an assembly (.S) file will cause an
 * assembler failure. See user_settings_asm.h above.
 */
#include "user_settings.h"
#endif /* WOLFSSL_USER_SETTINGS_ASM */
#endif /* WOLFSSL_USER_SETTINGS */

#ifndef HAVE_INTEL_AVX1
#define HAVE_INTEL_AVX1
#endif /* HAVE_INTEL_AVX1 */
#ifndef NO_AVX2_SUPPORT
#ifndef HAVE_INTEL_AVX2
#define HAVE_INTEL_AVX2
#endif /* HAVE_INTEL_AVX2 */
#endif /* NO_AVX2_SUPPORT */

#ifdef WOLFSSL_HAVE_MLDSA
#ifdef HAVE_INTEL_AVX2
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mldsa_q:
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mldsa_qinv:
.long	0x03802001,0x03802001,0x03802001,0x03802001
.long	0x03802001,0x03802001,0x03802001,0x03802001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mldsa_v:
.long	0x00400000,0x00400000,0x00400000,0x00400000
.long	0x00400000,0x00400000,0x00400000,0x00400000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_avx2_zetas:
.long	0x000064f7,0x000064f7,0x000064f7,0x000064f7
.long	0x000064f7,0x000064f7,0x000064f7,0x000064f7
.long	0x6d1f44f7,0x6d1f44f7,0x6d1f44f7,0x6d1f44f7
.long	0x6d1f44f7,0x6d1f44f7,0x6d1f44f7,0x6d1f44f7
.long	0xffd83102,0xffd83102,0xffd83102,0xffd83102
.long	0xffd83102,0xffd83102,0xffd83102,0xffd83102
.long	0x8cf87102,0x8cf87102,0x8cf87102,0x8cf87102
.long	0x8cf87102,0x8cf87102,0x8cf87102,0x8cf87102
.long	0xfff81503,0xfff81503,0xfff81503,0xfff81503
.long	0xfff81503,0xfff81503,0xfff81503,0xfff81503
.long	0x8d187503,0x8d187503,0x8d187503,0x8d187503
.long	0x8d187503,0x8d187503,0x8d187503,0x8d187503
.long	0x00039e44,0x00039e44,0x00039e44,0x00039e44
.long	0x00039e44,0x00039e44,0x00039e44,0x00039e44
.long	0x61cc1e44,0x61cc1e44,0x61cc1e44,0x61cc1e44
.long	0x61cc1e44,0x61cc1e44,0x61cc1e44,0x61cc1e44
.long	0x001bde2b,0x001bde2b,0x001bde2b,0x001bde2b
.long	0x001bde2b,0x001bde2b,0x001bde2b,0x001bde2b
.long	0x12613e2b,0x12613e2b,0x12613e2b,0x12613e2b
.long	0x12613e2b,0x12613e2b,0x12613e2b,0x12613e2b
.long	0x0023e92b,0x0023e92b,0x0023e92b,0x0023e92b
.long	0x0023e92b,0x0023e92b,0x0023e92b,0x0023e92b
.long	0x93c9492b,0x93c9492b,0x93c9492b,0x93c9492b
.long	0x93c9492b,0x93c9492b,0x93c9492b,0x93c9492b
.long	0x00299658,0x00299658,0x00299658,0x00299658
.long	0x00299658,0x00299658,0x00299658,0x00299658
.long	0x66f49658,0x66f49658,0x66f49658,0x66f49658
.long	0x66f49658,0x66f49658,0x66f49658,0x66f49658
.long	0x000fa070,0x000fa070,0x000fa070,0x000fa070
.long	0x000fa070,0x000fa070,0x000fa070,0x000fa070
.long	0x7c1da070,0x7c1da070,0x7c1da070,0x7c1da070
.long	0x7c1da070,0x7c1da070,0x7c1da070,0x7c1da070
.long	0xffef85a4,0xffef85a4,0xffef85a4,0xffef85a4
.long	0xffef85a4,0xffef85a4,0xffef85a4,0xffef85a4
.long	0xaea405a4,0xaea405a4,0xaea405a4,0xaea405a4
.long	0xaea405a4,0xaea405a4,0xaea405a4,0xaea405a4
.long	0x0036b788,0x0036b788,0x0036b788,0x0036b788
.long	0x0036b788,0x0036b788,0x0036b788,0x0036b788
.long	0x3327b788,0x3327b788,0x3327b788,0x3327b788
.long	0x3327b788,0x3327b788,0x3327b788,0x3327b788
.long	0x00294a67,0x00294a67,0x00294a67,0x00294a67
.long	0x00017620,0x00017620,0x00017620,0x00017620
.long	0x91f62a67,0x91f62a67,0x91f62a67,0x91f62a67
.long	0x9ec57620,0x9ec57620,0x9ec57620,0x9ec57620
.long	0x002ef4cd,0x002ef4cd,0x002ef4cd,0x002ef4cd
.long	0x0035dec5,0x0035dec5,0x0035dec5,0x0035dec5
.long	0xac4894cd,0xac4894cd,0xac4894cd,0xac4894cd
.long	0x6d8e7ec5,0x6d8e7ec5,0x6d8e7ec5,0x6d8e7ec5
.long	0xffc406e5,0xffc406e5,0xffe8ac81,0xffe8ac81
.long	0xffc7e1cf,0xffc7e1cf,0xffd19819,0xffd19819
.long	0xa220a6e5,0xa220a6e5,0xd8f8cc81,0xd8f8cc81
.long	0x5081c1cf,0x5081c1cf,0x8a54b819,0x8a54b819
.long	0xffe9d65d,0xffe9d65d,0x003509ee,0x003509ee
.long	0x002135c7,0x002135c7,0xffe7cfbb,0xffe7cfbb
.long	0x8035765d,0x8035765d,0x6272c9ee,0x6272c9ee
.long	0x5f5a15c7,0x5f5a15c7,0x085f2fbb,0x085f2fbb
.long	0xffe6a503,0xffe6a503,0xffe6a503,0xffe6a503
.long	0xffc9302c,0xffc9302c,0xffc9302c,0xffc9302c
.long	0x5f070503,0x5f070503,0x5f070503,0x5f070503
.long	0xbfceb02c,0xbfceb02c,0xbfceb02c,0xbfceb02c
.long	0xffd947d4,0xffd947d4,0xffd947d4,0xffd947d4
.long	0x003bbeaf,0x003bbeaf,0x003bbeaf,0x003bbeaf
.long	0x8ed3c7d4,0x8ed3c7d4,0x8ed3c7d4,0x8ed3c7d4
.long	0xdc919eaf,0xdc919eaf,0xdc919eaf,0xdc919eaf
.long	0xffeccf75,0xffeccf75,0x001d9772,0x001d9772
.long	0xffc1b072,0xffc1b072,0xfff0bcf6,0xfff0bcf6
.long	0xb35b6f75,0xb35b6f75,0xc20bd772,0xc20bd772
.long	0xc4cff072,0xc4cff072,0x748f7cf6,0x748f7cf6
.long	0xffcf5280,0xffcf5280,0xffcfd2ae,0xffcfd2ae
.long	0xffc890e0,0xffc890e0,0x0001efca,0x0001efca
.long	0xaa1f5280,0xaa1f5280,0x5b2592ae,0x5b2592ae
.long	0x21e490e0,0x21e490e0,0x80fb2fca,0x80fb2fca
.long	0x001fea93,0x0033ff5a,0x002358d4,0x003a41f8
.long	0xffccff72,0x00223dfb,0xffdaab9f,0xffc9a422
.long	0xfff24a93,0x3b1f3f5a,0x513dd8d4,0x2c7941f8
.long	0xaebb3f72,0x36619dfb,0x01ce8b9f,0xab4de422
.long	0x000412f5,0x00252587,0xffed24f0,0x00359b5d
.long	0xffca48a0,0xffc6a2fc,0xffedbb56,0xffcf45de
.long	0xdbe2b2f5,0xfd560587,0xec8b24f0,0x79213b5d
.long	0x78de48a0,0x462622fc,0x64587b56,0x718b05de
.long	0x000dbe5e,0x001c5e1a,0x000de0e6,0x000c7f5a
.long	0x00078f83,0xffe7628a,0xffff5704,0xfff806fc
.long	0x00d97e5e,0xe6df9e1a,0xe12aa0e6,0x4af7bf5a
.long	0x3c77ef83,0xcf38a28a,0x78dfd704,0x72d786fc
.long	0xfff60021,0xffd05af6,0x001f0084,0x0030ef86
.long	0xffc9b97d,0xfff7fcd6,0xfff44592,0xffc921c2
.long	0x337a2021,0x682f1af6,0xae2f8084,0x7321af86
.long	0x6c79597d,0xec92bcd6,0x07a68592,0x4b0161c2
.long	0xfff42118,0xfff42118,0xfff42118,0xfff42118
.long	0xfff42118,0xfff42118,0xfff42118,0xfff42118
.long	0x58172118,0x58172118,0x58172118,0x58172118
.long	0x58172118,0x58172118,0x58172118,0x58172118
.long	0xfffa84ad,0xfffa84ad,0xfffa84ad,0xfffa84ad
.long	0xfffa84ad,0xfffa84ad,0xfffa84ad,0xfffa84ad
.long	0xae1024ad,0xae1024ad,0xae1024ad,0xae1024ad
.long	0xae1024ad,0xae1024ad,0xae1024ad,0xae1024ad
.long	0xffe0147f,0xffe0147f,0xffe0147f,0xffe0147f
.long	0xffe0147f,0xffe0147f,0xffe0147f,0xffe0147f
.long	0xbeeff47f,0xbeeff47f,0xbeeff47f,0xbeeff47f
.long	0xbeeff47f,0xbeeff47f,0xbeeff47f,0xbeeff47f
.long	0xfff79d90,0xfff79d90,0xfff79d90,0xfff79d90
.long	0xfff79d90,0xfff79d90,0xfff79d90,0xfff79d90
.long	0x6ba99d90,0x6ba99d90,0x6ba99d90,0x6ba99d90
.long	0x6ba99d90,0x6ba99d90,0x6ba99d90,0x6ba99d90
.long	0xffeeeaa0,0xffeeeaa0,0xffeeeaa0,0xffeeeaa0
.long	0xffeeeaa0,0xffeeeaa0,0xffeeeaa0,0xffeeeaa0
.long	0x0d42eaa0,0x0d42eaa0,0x0d42eaa0,0x0d42eaa0
.long	0x0d42eaa0,0x0d42eaa0,0x0d42eaa0,0x0d42eaa0
.long	0x0027f968,0x0027f968,0x0027f968,0x0027f968
.long	0x0027f968,0x0027f968,0x0027f968,0x0027f968
.long	0xeb54f968,0xeb54f968,0xeb54f968,0xeb54f968
.long	0xeb54f968,0xeb54f968,0xeb54f968,0xeb54f968
.long	0xffdfd37b,0xffdfd37b,0xffdfd37b,0xffdfd37b
.long	0xffdfd37b,0xffdfd37b,0xffdfd37b,0xffdfd37b
.long	0x28cf337b,0x28cf337b,0x28cf337b,0x28cf337b
.long	0x28cf337b,0x28cf337b,0x28cf337b,0x28cf337b
.long	0xffc51585,0xffc51585,0xffc51585,0xffc51585
.long	0xffd18e7c,0xffd18e7c,0xffd18e7c,0xffd18e7c
.long	0xf3f5b585,0xf3f5b585,0xf3f5b585,0xf3f5b585
.long	0xe3a10e7c,0xe3a10e7c,0xe3a10e7c,0xe3a10e7c
.long	0x00368a96,0x00368a96,0x00368a96,0x00368a96
.long	0xffd43e41,0xffd43e41,0xffd43e41,0xffd43e41
.long	0xde894a96,0xde894a96,0xde894a96,0xde894a96
.long	0x6b1c5e41,0x6b1c5e41,0x6b1c5e41,0x6b1c5e41
.long	0x003410f2,0x003410f2,0xfff0fe85,0xfff0fe85
.long	0x0020c638,0x0020c638,0x00296e9f,0x00296e9f
.long	0xd15250f2,0xd15250f2,0xf1419e85,0xf1419e85
.long	0xdce7c638,0xdce7c638,0x5a7d4e9f,0x5a7d4e9f
.long	0xffd2b7a3,0xffd2b7a3,0xffc7a44b,0xffc7a44b
.long	0xfff9ba6d,0xfff9ba6d,0xffda3409,0xffda3409
.long	0x114717a3,0x114717a3,0xfad1044b,0xfad1044b
.long	0xb4c75a6d,0xb4c75a6d,0x65db5409,0x65db5409
.long	0x00360400,0x00360400,0x00360400,0x00360400
.long	0xfffb6a4d,0xfffb6a4d,0xfffb6a4d,0xfffb6a4d
.long	0xc0b60400,0xc0b60400,0xc0b60400,0xc0b60400
.long	0x7ac50a4d,0x7ac50a4d,0x7ac50a4d,0x7ac50a4d
.long	0x0023d69c,0x0023d69c,0x0023d69c,0x0023d69c
.long	0xfff7c55d,0xfff7c55d,0xfff7c55d,0xfff7c55d
.long	0x9cf7569c,0x9cf7569c,0x9cf7569c,0x9cf7569c
.long	0xbe23655d,0xbe23655d,0xbe23655d,0xbe23655d
.long	0xfff5c282,0xfff5c282,0xffed4113,0xffed4113
.long	0xffffa63b,0xffffa63b,0xffec09f7,0xffec09f7
.long	0x7f460282,0x7f460282,0x6a8fa113,0x6a8fa113
.long	0xc347063b,0xc347063b,0x61aae9f7,0x61aae9f7
.long	0xfffa2bdd,0xfffa2bdd,0x001495d4,0x001495d4
.long	0x001c4563,0x001c4563,0xffea2c62,0xffea2c62
.long	0xcaf5cbdd,0xcaf5cbdd,0xf8cf15d4,0xf8cf15d4
.long	0x6348a563,0x6348a563,0x9c766c62,0x9c766c62
.long	0x00053919,0x0004610c,0xffdacd41,0x003eb01b
.long	0x003472e7,0xffcd003b,0x001a7cc7,0x00031924
.long	0x7ea85919,0x3625e10c,0xbd02ed41,0x34c2101b
.long	0xb71152e7,0x6e54603b,0x08335cc7,0x61279924
.long	0x002b5ee5,0x00291199,0xffd87a3a,0x00134d71
.long	0x003de11c,0x00130984,0x0025f051,0x00185a46
.long	0x8d87fee5,0xb9dc3199,0xda1fba3a,0x75416d71
.long	0x9e61611c,0xaf438984,0xd9b01051,0x00611a46
.long	0xffc68518,0x001314be,0x00283891,0xffc9db90
.long	0xffd25089,0x001c853f,0x001d0b4b,0xffeff6a6
.long	0xa4698518,0xfbaad4be,0x02ba5891,0xb33bdb90
.long	0x29637089,0xed44653f,0x28066b4b,0x43c4b6a6
.long	0xffeba8be,0x0012e11b,0xffcd5e3e,0xffea2d2f
.long	0xfff91de4,0x001406c7,0x00327283,0xffe20d6e
.long	0x0e0368be,0x3ab6411b,0x84951e3e,0x6a100d2f
.long	0xc1b59de4,0x396ce6c7,0x1902d283,0x428fcd6e
.long	0xfff2a128,0xfff2a128,0xfff2a128,0xfff2a128
.long	0xfff2a128,0xfff2a128,0xfff2a128,0xfff2a128
.long	0x6017a128,0x6017a128,0x6017a128,0x6017a128
.long	0x6017a128,0x6017a128,0x6017a128,0x6017a128
.long	0x002f9a75,0x002f9a75,0x002f9a75,0x002f9a75
.long	0x002f9a75,0x002f9a75,0x002f9a75,0x002f9a75
.long	0x8cfe3a75,0x8cfe3a75,0x8cfe3a75,0x8cfe3a75
.long	0x8cfe3a75,0x8cfe3a75,0x8cfe3a75,0x8cfe3a75
.long	0xffd3fb09,0xffd3fb09,0xffd3fb09,0xffd3fb09
.long	0xffd3fb09,0xffd3fb09,0xffd3fb09,0xffd3fb09
.long	0x1eb51b09,0x1eb51b09,0x1eb51b09,0x1eb51b09
.long	0x1eb51b09,0x1eb51b09,0x1eb51b09,0x1eb51b09
.long	0xffdfadd6,0xffdfadd6,0xffdfadd6,0xffdfadd6
.long	0xffdfadd6,0xffdfadd6,0xffdfadd6,0xffdfadd6
.long	0x629a6dd6,0x629a6dd6,0x629a6dd6,0x629a6dd6
.long	0x629a6dd6,0x629a6dd6,0x629a6dd6,0x629a6dd6
.long	0xffc51ae7,0xffc51ae7,0xffc51ae7,0xffc51ae7
.long	0xffc51ae7,0xffc51ae7,0xffc51ae7,0xffc51ae7
.long	0xcba1fae7,0xcba1fae7,0xcba1fae7,0xcba1fae7
.long	0xcba1fae7,0xcba1fae7,0xcba1fae7,0xcba1fae7
.long	0xffeaa4f7,0xffeaa4f7,0xffeaa4f7,0xffeaa4f7
.long	0xffeaa4f7,0xffeaa4f7,0xffeaa4f7,0xffeaa4f7
.long	0xb50984f7,0xb50984f7,0xb50984f7,0xb50984f7
.long	0xb50984f7,0xb50984f7,0xb50984f7,0xb50984f7
.long	0xffcdfc98,0xffcdfc98,0xffcdfc98,0xffcdfc98
.long	0xffcdfc98,0xffcdfc98,0xffcdfc98,0xffcdfc98
.long	0xd360fc98,0xd360fc98,0xd360fc98,0xd360fc98
.long	0xd360fc98,0xd360fc98,0xd360fc98,0xd360fc98
.long	0xffe6123d,0xffe6123d,0xffe6123d,0xffe6123d
.long	0xffe6ead6,0xffe6ead6,0xffe6ead6,0xffe6ead6
.long	0x97adb23d,0x97adb23d,0x97adb23d,0x97adb23d
.long	0xca41aad6,0xca41aad6,0xca41aad6,0xca41aad6
.long	0x00357e1e,0x00357e1e,0x00357e1e,0x00357e1e
.long	0xffc5af59,0xffc5af59,0xffc5af59,0xffc5af59
.long	0x18f93e1e,0x18f93e1e,0x18f93e1e,0x18f93e1e
.long	0x6d30cf59,0x6d30cf59,0x6d30cf59,0x6d30cf59
.long	0xffccfbe9,0xffccfbe9,0x00040af0,0x00040af0
.long	0x0007c417,0x0007c417,0x002f4588,0x002f4588
.long	0x4eca1be9,0x4eca1be9,0xc9620af0,0xc9620af0
.long	0x490aa417,0x490aa417,0x44e04588,0x44e04588
.long	0x0000ad00,0x0000ad00,0xffef36be,0xffef36be
.long	0x000dcd44,0x000dcd44,0x003c675a,0x003c675a
.long	0x95a0ad00,0x95a0ad00,0x7fc6f6be,0x7fc6f6be
.long	0x27b64d44,0x27b64d44,0x4827a75a,0x4827a75a
.long	0x0035843f,0x0035843f,0x0035843f,0x0035843f
.long	0xffdf5617,0xffdf5617,0xffdf5617,0xffdf5617
.long	0x8d3d643f,0x8d3d643f,0x8d3d643f,0x8d3d643f
.long	0x3b223617,0x3b223617,0x3b223617,0x3b223617
.long	0xffe7945c,0xffe7945c,0xffe7945c,0xffe7945c
.long	0x0038738c,0x0038738c,0x0038738c,0x0038738c
.long	0x3473145c,0x3473145c,0x3473145c,0x3473145c
.long	0x78a9f38c,0x78a9f38c,0x78a9f38c,0x78a9f38c
.long	0xffc72bca,0xffc72bca,0xffffde7e,0xffffde7e
.long	0x00193948,0x00193948,0xffce69c0,0xffce69c0
.long	0x28406bca,0x28406bca,0xb4cf9e7e,0xb4cf9e7e
.long	0xa3423948,0xa3423948,0xed0669c0,0xed0669c0
.long	0x0024756c,0x0024756c,0xfffcc7df,0xfffcc7df
.long	0x000b98a1,0x000b98a1,0xffebe808,0xffebe808
.long	0x88d1f56c,0x88d1f56c,0x2578a7df,0x2578a7df
.long	0xa69fb8a1,0xa69fb8a1,0x98ece808,0x98ece808
.long	0xffec7953,0x001d4099,0xffd92578,0xffeb05ad
.long	0x0016e405,0x000bdbe7,0x00221de8,0x0033f8cf
.long	0x3196d953,0xbfb06099,0x48882578,0x3e20a5ad
.long	0xee178405,0x2408bbe7,0xefdf1de8,0x53cdd8cf
.long	0xfff7b934,0xffd4ca0c,0xffe67ff8,0xffe3d157
.long	0xffd8911b,0xffc72c12,0x000910d8,0xffc65e1f
.long	0x2d1e3934,0xc3164a0c,0xb3e57ff8,0x2a8eb157
.long	0xf07bf11b,0x24496c12,0x162410d8,0x380a3e1f
.long	0xffe14658,0x00251d8b,0x002573b7,0xfffd7c8f
.long	0x001ddd98,0x00336898,0x0002d4bb,0xffed93a7
.long	0x5cac4658,0x0a567d8b,0xaf1c53b7,0xa40f5c8f
.long	0x4fd0dd98,0x81466898,0xe91a34bb,0x7ae273a7
.long	0xffcf6cbe,0x00027c1c,0x0018aa08,0x002dfd71
.long	0x000c5ca5,0x0019379a,0xffc7a167,0xffe48c3d
.long	0x86672cbe,0xb185fc1c,0x3159aa08,0xcb5c1d71
.long	0xcd20fca5,0xc20c779a,0xdc748167,0x66ec2c3d
.long	0x00071e24,0x00071e24,0x00071e24,0x00071e24
.long	0x00071e24,0x00071e24,0x00071e24,0x00071e24
.long	0x61cb9e24,0x61cb9e24,0x61cb9e24,0x61cb9e24
.long	0x61cb9e24,0x61cb9e24,0x61cb9e24,0x61cb9e24
.long	0x002f7a49,0x002f7a49,0x002f7a49,0x002f7a49
.long	0x002f7a49,0x002f7a49,0x002f7a49,0x002f7a49
.long	0xeef89a49,0xeef89a49,0xeef89a49,0xeef89a49
.long	0xeef89a49,0xeef89a49,0xeef89a49,0xeef89a49
.long	0x0028e527,0x0028e527,0x0028e527,0x0028e527
.long	0x0028e527,0x0028e527,0x0028e527,0x0028e527
.long	0x254dc527,0x254dc527,0x254dc527,0x254dc527
.long	0x254dc527,0x254dc527,0x254dc527,0x254dc527
.long	0x001ad035,0x001ad035,0x001ad035,0x001ad035
.long	0x001ad035,0x001ad035,0x001ad035,0x001ad035
.long	0x13a17035,0x13a17035,0x13a17035,0x13a17035
.long	0x13a17035,0x13a17035,0x13a17035,0x13a17035
.long	0xffffb422,0xffffb422,0xffffb422,0xffffb422
.long	0xffffb422,0xffffb422,0xffffb422,0xffffb422
.long	0x6d83f422,0x6d83f422,0x6d83f422,0x6d83f422
.long	0x6d83f422,0x6d83f422,0x6d83f422,0x6d83f422
.long	0x003d3201,0x003d3201,0x003d3201,0x003d3201
.long	0x003d3201,0x003d3201,0x003d3201,0x003d3201
.long	0xa9fd5201,0xa9fd5201,0xa9fd5201,0xa9fd5201
.long	0xa9fd5201,0xa9fd5201,0xa9fd5201,0xa9fd5201
.long	0x000445c5,0x000445c5,0x000445c5,0x000445c5
.long	0x000445c5,0x000445c5,0x000445c5,0x000445c5
.long	0xba3ce5c5,0xba3ce5c5,0xba3ce5c5,0xba3ce5c5
.long	0xba3ce5c5,0xba3ce5c5,0xba3ce5c5,0xba3ce5c5
.long	0x000c63a8,0x000c63a8,0x000c63a8,0x000c63a8
.long	0x00081b9a,0x00081b9a,0x00081b9a,0x00081b9a
.long	0x588163a8,0x588163a8,0x588163a8,0x588163a8
.long	0x9e7b5b9a,0x9e7b5b9a,0x9e7b5b9a,0x9e7b5b9a
.long	0x000e8f76,0x000e8f76,0x000e8f76,0x000e8f76
.long	0x003b3853,0x003b3853,0x003b3853,0x003b3853
.long	0xeefd4f76,0xeefd4f76,0xeefd4f76,0xeefd4f76
.long	0x89c59853,0x89c59853,0x89c59853,0x89c59853
.long	0x0002e46c,0x0002e46c,0xffc9c808,0xffc9c808
.long	0x003036c2,0x003036c2,0xffe3bff6,0xffe3bff6
.long	0xd690646c,0xd690646c,0x54cac808,0x54cac808
.long	0xae0876c2,0xae0876c2,0x54e27ff6,0x54e27ff6
.long	0xffdb3c93,0xffdb3c93,0xfffd4ae0,0xfffd4ae0
.long	0x00141305,0x00141305,0x00147792,0x00147792
.long	0x69ed9c93,0x69ed9c93,0xb9594ae0,0xb9594ae0
.long	0x13f4b305,0x13f4b305,0x0e06b792,0x0e06b792
.long	0x003b8534,0x003b8534,0x003b8534,0x003b8534
.long	0xffd8fc30,0xffd8fc30,0xffd8fc30,0xffd8fc30
.long	0xa6e20534,0xa6e20534,0xa6e20534,0xa6e20534
.long	0xc75efc30,0xc75efc30,0xc75efc30,0xc75efc30
.long	0x001f9d54,0x001f9d54,0x001f9d54,0x001f9d54
.long	0xffd54f2d,0xffd54f2d,0xffd54f2d,0xffd54f2d
.long	0x99ca1d54,0x99ca1d54,0x99ca1d54,0x99ca1d54
.long	0xc73aef2d,0xc73aef2d,0xc73aef2d,0xc73aef2d
.long	0x00139e25,0x00139e25,0xffe7d0e0,0xffe7d0e0
.long	0xfff39944,0xfff39944,0xffea0802,0xffea0802
.long	0xf5583e25,0xf5583e25,0x0a03d0e0,0x0a03d0e0
.long	0xe11c1944,0xe11c1944,0x47ea4802,0x47ea4802
.long	0xffd1eea2,0xffd1eea2,0xffc4c79c,0xffc4c79c
.long	0xffc8a057,0xffc8a057,0x003a97d9,0x003a97d9
.long	0x74a62ea2,0x74a62ea2,0x3ab8479c,0x3ab8479c
.long	0x44538057,0x44538057,0xcab5b7d9,0xcab5b7d9
.long	0xffd1a13c,0x0035c539,0x003b0115,0x00041dc0
.long	0x0021c4f7,0xfff11bf4,0x001a35e7,0x0007340e
.long	0x85f9213c,0x005ce539,0x29dda115,0xa3bc1dc0
.long	0x9940a4f7,0xf96f9bf4,0xef5715e7,0x1788f40e
.long	0xfff97d45,0x001a4cd0,0xffe47cae,0x001d2668
.long	0xffe68e98,0xffef2633,0xfffc05da,0xffc57fdb
.long	0xa1221d45,0x21b44cd0,0xf07a3cae,0x10ea2668
.long	0xe5b98e98,0x97358633,0xfbb745da,0x2e40dfdb
.long	0xffd32764,0xffdde1af,0xfff993dd,0xffdd1d09
.long	0x0002cc93,0xfff11805,0x00189c2a,0xffc9e5a9
.long	0x42bfa764,0xa093c1af,0xb7f533dd,0x42fe3d09
.long	0x5c152c93,0x3471b805,0xa69ddc2a,0x0bff05a9
.long	0xfff78a50,0x003bcf2c,0xffff434e,0xffeb36df
.long	0x003c15ca,0x00155e68,0xfff316b6,0x001e29ce
.long	0x09418a50,0x94214f2c,0x7969034e,0x734716df
.long	0xc5f555ca,0x17e25e68,0xdfc9d6b6,0x1657e9ce
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_avx2_zetas_basemul:
.long	0xffc406e5,0xffe9d65d,0x003cf91b,0x001729a3
.long	0xffe8ac81,0x003509ee,0x0018537f,0xffcbf612
.long	0xffc7e1cf,0x002135c7,0x00391e31,0xffdfca39
.long	0xffd19819,0xffe7cfbb,0x002f67e7,0x00193045
.long	0x0000a6e5,0x0000765d,0x0000591b,0x000089a3
.long	0x0000cc81,0x0000c9ee,0x0000337f,0x00003612
.long	0x0000c1cf,0x000015c7,0x00003e31,0x0000ea39
.long	0x0000b819,0x00002fbb,0x000047e7,0x0000d045
.long	0xffeccf75,0xffcf5280,0x0014308b,0x0031ad80
.long	0x001d9772,0xffcfd2ae,0xffe3688e,0x00312d52
.long	0xffc1b072,0xffc890e0,0x003f4f8e,0x00386f20
.long	0xfff0bcf6,0x0001efca,0x0010430a,0xffff1036
.long	0x00006f75,0x00005280,0x0000908b,0x0000ad80
.long	0x0000d772,0x000092ae,0x0000288e,0x00006d52
.long	0x0000f072,0x000090e0,0x00000f8e,0x00006f20
.long	0x00007cf6,0x00002fca,0x0000830a,0x0000d036
.long	0x003410f2,0xffd2b7a3,0xffccef0e,0x002e485d
.long	0xfff0fe85,0xffc7a44b,0x0010017b,0x00395bb5
.long	0x0020c638,0xfff9ba6d,0xffe039c8,0x00074593
.long	0x00296e9f,0xffda3409,0xffd79161,0x0026cbf7
.long	0x000050f2,0x000017a3,0x0000af0e,0x0000e85d
.long	0x00009e85,0x0000044b,0x0000617b,0x0000fbb5
.long	0x0000c638,0x00005a6d,0x000039c8,0x0000a593
.long	0x00004e9f,0x00005409,0x0000b161,0x0000abf7
.long	0xfff5c282,0xfffa2bdd,0x000b3d7e,0x0006d423
.long	0xffed4113,0x001495d4,0x0013beed,0xffec6a2c
.long	0xffffa63b,0x001c4563,0x000159c5,0xffe4ba9d
.long	0xffec09f7,0xffea2c62,0x0014f609,0x0016d39e
.long	0x00000282,0x0000cbdd,0x0000fd7e,0x00003423
.long	0x0000a113,0x000015d4,0x00005eed,0x0000ea2c
.long	0x0000063b,0x0000a563,0x0000f9c5,0x00005a9d
.long	0x0000e9f7,0x00006c62,0x00001609,0x0000939e
.long	0xffccfbe9,0x0000ad00,0x00340417,0x00005300
.long	0x00040af0,0xffef36be,0xfffcf510,0x0011c942
.long	0x0007c417,0x000dcd44,0xfff93be9,0xfff332bc
.long	0x002f4588,0x003c675a,0xffd1ba78,0xffc498a6
.long	0x00001be9,0x0000ad00,0x0000e417,0x00005300
.long	0x00000af0,0x0000f6be,0x0000f510,0x00000942
.long	0x0000a417,0x00004d44,0x00005be9,0x0000b2bc
.long	0x00004588,0x0000a75a,0x0000ba78,0x000058a6
.long	0xffc72bca,0x0024756c,0x0039d436,0xffdc8a94
.long	0xffffde7e,0xfffcc7df,0x00012182,0x00043821
.long	0x00193948,0x000b98a1,0xffe7c6b8,0xfff5675f
.long	0xffce69c0,0xffebe808,0x00329640,0x001517f8
.long	0x00006bca,0x0000f56c,0x00009436,0x00000a94
.long	0x00009e7e,0x0000a7df,0x00006182,0x00005821
.long	0x00003948,0x0000b8a1,0x0000c6b8,0x0000475f
.long	0x000069c0,0x0000e808,0x00009640,0x000017f8
.long	0x0002e46c,0xffdb3c93,0xfffe1b94,0x0025c36d
.long	0xffc9c808,0xfffd4ae0,0x003737f8,0x0003b520
.long	0x003036c2,0x00141305,0xffd0c93e,0xffececfb
.long	0xffe3bff6,0x00147792,0x001d400a,0xffec886e
.long	0x0000646c,0x00009c93,0x00009b94,0x0000636d
.long	0x0000c808,0x00004ae0,0x000037f8,0x0000b520
.long	0x000076c2,0x0000b305,0x0000893e,0x00004cfb
.long	0x00007ff6,0x0000b792,0x0000800a,0x0000486e
.long	0x00139e25,0xffd1eea2,0xffed61db,0x002f115e
.long	0xffe7d0e0,0xffc4c79c,0x00192f20,0x003c3864
.long	0xfff39944,0xffc8a057,0x000d66bc,0x00385fa9
.long	0xffea0802,0x003a97d9,0x0016f7fe,0xffc66827
.long	0x00003e25,0x00002ea2,0x0000c1db,0x0000d15e
.long	0x0000d0e0,0x0000479c,0x00002f20,0x0000b864
.long	0x00001944,0x00008057,0x0000e6bc,0x00007fa9
.long	0x00004802,0x0000b7d9,0x0000b7fe,0x00004827
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_avx2_zetas_1:
.long	0xffc97e01,0xffc97e01,0xffc97e01,0xffc97e01
.long	0xffc97e01,0xffc97e01,0xffc97e01,0xffc97e01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_avx2_zetas_inv:
.long	0xffe1d632,0x000ce94a,0xffeaa198,0xffc3ea36
.long	0x0014c921,0x0000bcb2,0xffc430d4,0x000875b0
.long	0xe9a81632,0x2036294a,0xe81da198,0x3a0aaa36
.long	0x8cb8e921,0x8696fcb2,0x6bdeb0d4,0xf6be75b0
.long	0x00361a57,0xffe763d6,0x000ee7fb,0xfffd336d
.long	0x0022e2f7,0x00066c23,0x00221e51,0x002cd89c
.long	0xf400fa57,0x596223d6,0xcb8e47fb,0xa3ead36d
.long	0xbd01c2f7,0x480acc23,0x5f6c3e51,0xbd40589c
.long	0xffc56827,0xffc56827,0x00375fa9,0x00375fa9
.long	0x003b3864,0x003b3864,0x002e115e,0x002e115e
.long	0x354a4827,0x354a4827,0xbbac7fa9,0xbbac7fa9
.long	0xc547b864,0xc547b864,0x8b59d15e,0x8b59d15e
.long	0x0015f7fe,0x0015f7fe,0x000c66bc,0x000c66bc
.long	0x00182f20,0x00182f20,0xffec61db,0xffec61db
.long	0xb815b7fe,0xb815b7fe,0x1ee3e6bc,0x1ee3e6bc
.long	0xf5fc2f20,0xf5fc2f20,0x0aa7c1db,0x0aa7c1db
.long	0x002ab0d3,0x002ab0d3,0x002ab0d3,0x002ab0d3
.long	0xffe062ac,0xffe062ac,0xffe062ac,0xffe062ac
.long	0x38c510d3,0x38c510d3,0x38c510d3,0x38c510d3
.long	0x6635e2ac,0x6635e2ac,0x6635e2ac,0x6635e2ac
.long	0x002703d0,0x002703d0,0x002703d0,0x002703d0
.long	0xffc47acc,0xffc47acc,0xffc47acc,0xffc47acc
.long	0x38a103d0,0x38a103d0,0x38a103d0,0x38a103d0
.long	0x591dfacc,0x591dfacc,0x591dfacc,0x591dfacc
.long	0xfffbba3b,0xfffbba3b,0xfffbba3b,0xfffbba3b
.long	0xfffbba3b,0xfffbba3b,0xfffbba3b,0xfffbba3b
.long	0x45c31a3b,0x45c31a3b,0x45c31a3b,0x45c31a3b
.long	0x45c31a3b,0x45c31a3b,0x45c31a3b,0x45c31a3b
.long	0xffc2cdff,0xffc2cdff,0xffc2cdff,0xffc2cdff
.long	0xffc2cdff,0xffc2cdff,0xffc2cdff,0xffc2cdff
.long	0x5602adff,0x5602adff,0x5602adff,0x5602adff
.long	0x5602adff,0x5602adff,0x5602adff,0x5602adff
.long	0xffd71ad9,0xffd71ad9,0xffd71ad9,0xffd71ad9
.long	0xffd71ad9,0xffd71ad9,0xffd71ad9,0xffd71ad9
.long	0xdab23ad9,0xdab23ad9,0xdab23ad9,0xdab23ad9
.long	0xdab23ad9,0xdab23ad9,0xdab23ad9,0xdab23ad9
.long	0x003a8025,0x0003fa26,0x0010d9cd,0x00197168
.long	0xffe2d998,0x001b8352,0xffe5b330,0x000682bb
.long	0xd1bf2025,0x0448ba26,0x68ca79cd,0x1a467168
.long	0xef15d998,0x0f85c352,0xde4bb330,0x5edde2bb
.long	0xfff8cbf2,0xffe5ca19,0x000ee40c,0xffde3b09
.long	0xfffbe240,0xffc4feeb,0xffca3ac7,0x002e5ec4
.long	0xe8770bf2,0x10a8ea19,0x0690640c,0x66bf5b09
.long	0x5c43e240,0xd6225eeb,0xffa31ac7,0x7a06dec4
.long	0xffeb886e,0xffeb886e,0xffebecfb,0xffebecfb
.long	0x0002b520,0x0002b520,0x0024c36d,0x0024c36d
.long	0xf1f9486e,0xf1f9486e,0xec0b4cfb,0xec0b4cfb
.long	0x46a6b520,0x46a6b520,0x9612636d,0x9612636d
.long	0x001c400a,0x001c400a,0xffcfc93e,0xffcfc93e
.long	0x003637f8,0x003637f8,0xfffd1b94,0xfffd1b94
.long	0xab1d800a,0xab1d800a,0x51f7893e,0x51f7893e
.long	0xab3537f8,0xab3537f8,0x296f9b94,0x296f9b94
.long	0xffc4c7ad,0xffc4c7ad,0xffc4c7ad,0xffc4c7ad
.long	0xfff1708a,0xfff1708a,0xfff1708a,0xfff1708a
.long	0x763a67ad,0x763a67ad,0x763a67ad,0x763a67ad
.long	0x1102b08a,0x1102b08a,0x1102b08a,0x1102b08a
.long	0xfff7e466,0xfff7e466,0xfff7e466,0xfff7e466
.long	0xfff39c58,0xfff39c58,0xfff39c58,0xfff39c58
.long	0x6184a466,0x6184a466,0x6184a466,0x6184a466
.long	0xa77e9c58,0xa77e9c58,0xa77e9c58,0xa77e9c58
.long	0x00004bde,0x00004bde,0x00004bde,0x00004bde
.long	0x00004bde,0x00004bde,0x00004bde,0x00004bde
.long	0x927c0bde,0x927c0bde,0x927c0bde,0x927c0bde
.long	0x927c0bde,0x927c0bde,0x927c0bde,0x927c0bde
.long	0xffe52fcb,0xffe52fcb,0xffe52fcb,0xffe52fcb
.long	0xffe52fcb,0xffe52fcb,0xffe52fcb,0xffe52fcb
.long	0xec5e8fcb,0xec5e8fcb,0xec5e8fcb,0xec5e8fcb
.long	0xec5e8fcb,0xec5e8fcb,0xec5e8fcb,0xec5e8fcb
.long	0xffd085b7,0xffd085b7,0xffd085b7,0xffd085b7
.long	0xffd085b7,0xffd085b7,0xffd085b7,0xffd085b7
.long	0x110765b7,0x110765b7,0x110765b7,0x110765b7
.long	0x110765b7,0x110765b7,0x110765b7,0x110765b7
.long	0xfff8e1dc,0xfff8e1dc,0xfff8e1dc,0xfff8e1dc
.long	0xfff8e1dc,0xfff8e1dc,0xfff8e1dc,0xfff8e1dc
.long	0x9e3461dc,0x9e3461dc,0x9e3461dc,0x9e3461dc
.long	0x9e3461dc,0x9e3461dc,0x9e3461dc,0x9e3461dc
.long	0x001b73c3,0x00385e99,0xffe6c866,0xfff3a35b
.long	0xffd2028f,0xffe755f8,0xfffd83e4,0x00309342
.long	0x9913d3c3,0x238b7e99,0x3df38866,0x32df035b
.long	0x34a3e28f,0xcea655f8,0x4e7a03e4,0x7998d342
.long	0x00126c59,0xfffd2b45,0xffcc9768,0xffe22268
.long	0x00028371,0xffda8c49,0xffdae275,0x001eb9a8
.long	0x851d8c59,0x16e5cb45,0x7eb99768,0xb02f2268
.long	0x5bf0a371,0x50e3ac49,0xf5a98275,0xa353b9a8
.long	0x001417f8,0x001417f8,0xfff4675f,0xfff4675f
.long	0x00033821,0x00033821,0xffdb8a94,0xffdb8a94
.long	0x671317f8,0x671317f8,0x5960475f,0x5960475f
.long	0xda875821,0xda875821,0x772e0a94,0x772e0a94
.long	0x00319640,0x00319640,0xffe6c6b8,0xffe6c6b8
.long	0x00002182,0x00002182,0x0038d436,0x0038d436
.long	0x12f99640,0x12f99640,0x5cbdc6b8,0x5cbdc6b8
.long	0x4b306182,0x4b306182,0xd7bf9436,0xd7bf9436
.long	0xffc78c74,0xffc78c74,0xffc78c74,0xffc78c74
.long	0x00186ba4,0x00186ba4,0x00186ba4,0x00186ba4
.long	0x87560c74,0x87560c74,0x87560c74,0x87560c74
.long	0xcb8ceba4,0xcb8ceba4,0xcb8ceba4,0xcb8ceba4
.long	0x0020a9e9,0x0020a9e9,0x0020a9e9,0x0020a9e9
.long	0xffca7bc1,0xffca7bc1,0xffca7bc1,0xffca7bc1
.long	0xc4ddc9e9,0xc4ddc9e9,0xc4ddc9e9,0xc4ddc9e9
.long	0x72c29bc1,0x72c29bc1,0x72c29bc1,0x72c29bc1
.long	0x00320368,0x00320368,0x00320368,0x00320368
.long	0x00320368,0x00320368,0x00320368,0x00320368
.long	0x2c9f0368,0x2c9f0368,0x2c9f0368,0x2c9f0368
.long	0x2c9f0368,0x2c9f0368,0x2c9f0368,0x2c9f0368
.long	0x00155b09,0x00155b09,0x00155b09,0x00155b09
.long	0x00155b09,0x00155b09,0x00155b09,0x00155b09
.long	0x4af67b09,0x4af67b09,0x4af67b09,0x4af67b09
.long	0x4af67b09,0x4af67b09,0x4af67b09,0x4af67b09
.long	0x002c04f7,0x002c04f7,0x002c04f7,0x002c04f7
.long	0x002c04f7,0x002c04f7,0x002c04f7,0x002c04f7
.long	0xe14ae4f7,0xe14ae4f7,0xe14ae4f7,0xe14ae4f7
.long	0xe14ae4f7,0xe14ae4f7,0xe14ae4f7,0xe14ae4f7
.long	0x0039a1e1,0xfff6ef28,0x0038d3ee,0x00276ee5
.long	0x001c2ea9,0x00198008,0x002b35f4,0x000846cc
.long	0xc7f5c1e1,0xe9dbef28,0xdbb693ee,0x0f840ee5
.long	0xd5714ea9,0x4c1a8008,0x3ce9b5f4,0xd2e1c6cc
.long	0xffcc0731,0xffdde218,0xfff42419,0xffe91bfb
.long	0x0014fa53,0x0026da88,0xffe2bf67,0x001386ad
.long	0xac322731,0x1020e218,0xdbf74419,0x11e87bfb
.long	0xc1df5a53,0xb777da88,0x404f9f67,0xce6926ad
.long	0xffc398a6,0xffc398a6,0xfff232bc,0xfff232bc
.long	0x0010c942,0x0010c942,0xffff5300,0xffff5300
.long	0xb7d858a6,0xb7d858a6,0xd849b2bc,0xd849b2bc
.long	0x80390942,0x80390942,0x6a5f5300,0x6a5f5300
.long	0xffd0ba78,0xffd0ba78,0xfff83be9,0xfff83be9
.long	0xfffbf510,0xfffbf510,0x00330417,0x00330417
.long	0xbb1fba78,0xbb1fba78,0xb6f55be9,0xb6f55be9
.long	0x369df510,0x369df510,0xb135e417,0xb135e417
.long	0x003a50a7,0x003a50a7,0x003a50a7,0x003a50a7
.long	0xffca81e2,0xffca81e2,0xffca81e2,0xffca81e2
.long	0x92cf30a7,0x92cf30a7,0x92cf30a7,0x92cf30a7
.long	0xe706c1e2,0xe706c1e2,0xe706c1e2,0xe706c1e2
.long	0x0019152a,0x0019152a,0x0019152a,0x0019152a
.long	0x0019edc3,0x0019edc3,0x0019edc3,0x0019edc3
.long	0x35be552a,0x35be552a,0x35be552a,0x35be552a
.long	0x68524dc3,0x68524dc3,0x68524dc3,0x68524dc3
.long	0x003ae519,0x003ae519,0x003ae519,0x003ae519
.long	0x003ae519,0x003ae519,0x003ae519,0x003ae519
.long	0x345e0519,0x345e0519,0x345e0519,0x345e0519
.long	0x345e0519,0x345e0519,0x345e0519,0x345e0519
.long	0x0020522a,0x0020522a,0x0020522a,0x0020522a
.long	0x0020522a,0x0020522a,0x0020522a,0x0020522a
.long	0x9d65922a,0x9d65922a,0x9d65922a,0x9d65922a
.long	0x9d65922a,0x9d65922a,0x9d65922a,0x9d65922a
.long	0xffd0658b,0xffd0658b,0xffd0658b,0xffd0658b
.long	0xffd0658b,0xffd0658b,0xffd0658b,0xffd0658b
.long	0x7301c58b,0x7301c58b,0x7301c58b,0x7301c58b
.long	0x7301c58b,0x7301c58b,0x7301c58b,0x7301c58b
.long	0x000d5ed8,0x000d5ed8,0x000d5ed8,0x000d5ed8
.long	0x000d5ed8,0x000d5ed8,0x000d5ed8,0x000d5ed8
.long	0x9fe85ed8,0x9fe85ed8,0x9fe85ed8,0x9fe85ed8
.long	0x9fe85ed8,0x9fe85ed8,0x9fe85ed8,0x9fe85ed8
.long	0x001df292,0xffcd8d7d,0xffebf939,0x0006e21c
.long	0x0015d2d1,0x0032a1c2,0xffed1ee5,0x00145742
.long	0xbd703292,0xe6fd2d7d,0xc6931939,0x3e4a621c
.long	0x95eff2d1,0x7b6ae1c2,0xc549bee5,0xf1fc9742
.long	0x0010095a,0xffe2f4b5,0xffe37ac1,0x002daf77
.long	0x00362470,0xffd7c76f,0xffeceb42,0x00397ae8
.long	0xbc3b495a,0xd7f994b5,0x12bb9ac1,0xd69c8f77
.long	0x4cc42470,0xfd45a76f,0x04552b42,0x5b967ae8
.long	0x0015d39e,0x0015d39e,0xffe3ba9d,0xffe3ba9d
.long	0xffeb6a2c,0xffeb6a2c,0x0005d423,0x0005d423
.long	0x6389939e,0x6389939e,0x9cb75a9d,0x9cb75a9d
.long	0x0730ea2c,0x0730ea2c,0x350a3423,0x350a3423
.long	0x0013f609,0x0013f609,0x000059c5,0x000059c5
.long	0x0012beed,0x0012beed,0x000a3d7e,0x000a3d7e
.long	0x9e551609,0x9e551609,0x3cb8f9c5,0x3cb8f9c5
.long	0x95705eed,0x95705eed,0x80b9fd7e,0x80b9fd7e
.long	0x00083aa3,0x00083aa3,0x00083aa3,0x00083aa3
.long	0xffdc2964,0xffdc2964,0xffdc2964,0xffdc2964
.long	0x41dc9aa3,0x41dc9aa3,0x41dc9aa3,0x41dc9aa3
.long	0x6308a964,0x6308a964,0x6308a964,0x6308a964
.long	0x000495b3,0x000495b3,0x000495b3,0x000495b3
.long	0xffc9fc00,0xffc9fc00,0xffc9fc00,0xffc9fc00
.long	0x853af5b3,0x853af5b3,0x853af5b3,0x853af5b3
.long	0x3f49fc00,0x3f49fc00,0x3f49fc00,0x3f49fc00
.long	0x00202c85,0x00202c85,0x00202c85,0x00202c85
.long	0x00202c85,0x00202c85,0x00202c85,0x00202c85
.long	0xd730cc85,0xd730cc85,0xd730cc85,0xd730cc85
.long	0xd730cc85,0xd730cc85,0xd730cc85,0xd730cc85
.long	0xffd80698,0xffd80698,0xffd80698,0xffd80698
.long	0xffd80698,0xffd80698,0xffd80698,0xffd80698
.long	0x14ab0698,0x14ab0698,0x14ab0698,0x14ab0698
.long	0x14ab0698,0x14ab0698,0x14ab0698,0x14ab0698
.long	0x001feb81,0x001feb81,0x001feb81,0x001feb81
.long	0x001feb81,0x001feb81,0x001feb81,0x001feb81
.long	0x41100b81,0x41100b81,0x41100b81,0x41100b81
.long	0x41100b81,0x41100b81,0x41100b81,0x41100b81
.long	0xffe7a5ba,0xffda0faf,0xffecf67c,0xffc21ee4
.long	0xffecb28f,0x002785c6,0xffd6ee67,0xffd4a11b
.long	0xff9ee5ba,0x264fefaf,0x50bc767c,0x619e9ee4
.long	0x8abe928f,0x25e045c6,0x4623ce67,0x7278011b
.long	0xfffce6dc,0xffe58339,0x0032ffc5,0xffcb8d19
.long	0xffc14fe5,0x002532bf,0xfffb9ef4,0xfffac6e7
.long	0x9ed866dc,0xf7cca339,0x91ab9fc5,0x48eead19
.long	0xcb3defe5,0x42fd12bf,0xc9da1ef4,0x8157a6e7
.long	0x0025cbf7,0x0025cbf7,0x00064593,0x00064593
.long	0x00385bb5,0x00385bb5,0x002d485d,0x002d485d
.long	0x9a24abf7,0x9a24abf7,0x4b38a593,0x4b38a593
.long	0x052efbb5,0x052efbb5,0xeeb8e85d,0xeeb8e85d
.long	0xffd69161,0xffd69161,0xffdf39c8,0xffdf39c8
.long	0x000f017b,0x000f017b,0xffcbef0e,0xffcbef0e
.long	0xa582b161,0xa582b161,0x231839c8,0x231839c8
.long	0x0ebe617b,0x0ebe617b,0x2eadaf0e,0x2eadaf0e
.long	0x002bc1bf,0x002bc1bf,0x002bc1bf,0x002bc1bf
.long	0xffc9756a,0xffc9756a,0xffc9756a,0xffc9756a
.long	0x94e3a1bf,0x94e3a1bf,0x94e3a1bf,0x94e3a1bf
.long	0x2176b56a,0x2176b56a,0x2176b56a,0x2176b56a
.long	0x002e7184,0x002e7184,0x002e7184,0x002e7184
.long	0x003aea7b,0x003aea7b,0x003aea7b,0x003aea7b
.long	0x1c5ef184,0x1c5ef184,0x1c5ef184,0x1c5ef184
.long	0x0c0a4a7b,0x0c0a4a7b,0x0c0a4a7b,0x0c0a4a7b
.long	0x00111560,0x00111560,0x00111560,0x00111560
.long	0x00111560,0x00111560,0x00111560,0x00111560
.long	0xf2bd1560,0xf2bd1560,0xf2bd1560,0xf2bd1560
.long	0xf2bd1560,0xf2bd1560,0xf2bd1560,0xf2bd1560
.long	0x00086270,0x00086270,0x00086270,0x00086270
.long	0x00086270,0x00086270,0x00086270,0x00086270
.long	0x94566270,0x94566270,0x94566270,0x94566270
.long	0x94566270,0x94566270,0x94566270,0x94566270
.long	0x00057b53,0x00057b53,0x00057b53,0x00057b53
.long	0x00057b53,0x00057b53,0x00057b53,0x00057b53
.long	0x51efdb53,0x51efdb53,0x51efdb53,0x51efdb53
.long	0x51efdb53,0x51efdb53,0x51efdb53,0x51efdb53
.long	0x000bdee8,0x000bdee8,0x000bdee8,0x000bdee8
.long	0x000bdee8,0x000bdee8,0x000bdee8,0x000bdee8
.long	0xa7e8dee8,0xa7e8dee8,0xa7e8dee8,0xa7e8dee8
.long	0xa7e8dee8,0xa7e8dee8,0xa7e8dee8,0xa7e8dee8
.long	0x0036de3e,0x000bba6e,0x0008032a,0x00364683
.long	0xffcf107a,0xffe0ff7c,0x002fa50a,0x0009ffdf
.long	0xb4fe9e3e,0xf8597a6e,0x136d432a,0x9386a683
.long	0x8cde507a,0x51d07f7c,0x97d0e50a,0xcc85dfdf
.long	0x0007f904,0x0000a8fc,0x00189d76,0xfff8707d
.long	0xfff380a6,0xfff21f1a,0xffe3a1e6,0xfff241a2
.long	0x8d287904,0x872028fc,0x30c75d76,0xc388107d
.long	0xb50840a6,0x1ed55f1a,0x192061e6,0xff2681a2
.long	0xfffe1036,0xfffe1036,0x00376f20,0x00376f20
.long	0x00302d52,0x00302d52,0x0030ad80,0x0030ad80
.long	0x7f04d036,0x7f04d036,0xde1b6f20,0xde1b6f20
.long	0xa4da6d52,0xa4da6d52,0x55e0ad80,0x55e0ad80
.long	0x000f430a,0x000f430a,0x003e4f8e,0x003e4f8e
.long	0xffe2688e,0xffe2688e,0x0013308b,0x0013308b
.long	0x8b70830a,0x8b70830a,0x3b300f8e,0x3b300f8e
.long	0x3df4288e,0x3df4288e,0x4ca4908b,0x4ca4908b
.long	0xffc44151,0xffc44151,0xffc44151,0xffc44151
.long	0x0026b82c,0x0026b82c,0x0026b82c,0x0026b82c
.long	0x236e6151,0x236e6151,0x236e6151,0x236e6151
.long	0x712c382c,0x712c382c,0x712c382c,0x712c382c
.long	0x0036cfd4,0x0036cfd4,0x0036cfd4,0x0036cfd4
.long	0x00195afd,0x00195afd,0x00195afd,0x00195afd
.long	0x40314fd4,0x40314fd4,0x40314fd4,0x40314fd4
.long	0xa0f8fafd,0xa0f8fafd,0xa0f8fafd,0xa0f8fafd
.long	0xffc94878,0xffc94878,0xffc94878,0xffc94878
.long	0xffc94878,0xffc94878,0xffc94878,0xffc94878
.long	0xccd84878,0xccd84878,0xccd84878,0xccd84878
.long	0xccd84878,0xccd84878,0xccd84878,0xccd84878
.long	0x00107a5c,0x00107a5c,0x00107a5c,0x00107a5c
.long	0x00107a5c,0x00107a5c,0x00107a5c,0x00107a5c
.long	0x515bfa5c,0x515bfa5c,0x515bfa5c,0x515bfa5c
.long	0x515bfa5c,0x515bfa5c,0x515bfa5c,0x515bfa5c
.long	0xffdc16d5,0xffdc16d5,0xffdc16d5,0xffdc16d5
.long	0xffdc16d5,0xffdc16d5,0xffdc16d5,0xffdc16d5
.long	0x6c36b6d5,0x6c36b6d5,0x6c36b6d5,0x6c36b6d5
.long	0x6c36b6d5,0x6c36b6d5,0x6c36b6d5,0x6c36b6d5
.long	0x0030ba22,0x001244aa,0x00395d04,0x0035b760
.long	0xffca64a3,0x0012db10,0xffdada79,0xfffbed0b
.long	0x8e74fa22,0x9ba784aa,0xb9d9dd04,0x8721b760
.long	0x86dec4a3,0x1374db10,0x02a9fa79,0x241d4d0b
.long	0x00365bde,0x00255461,0xffddc205,0x0033008e
.long	0xffc5be08,0xffdca72c,0xffcc00a6,0xffe0156d
.long	0x54b21bde,0xfe317461,0xc99e6205,0x5144c08e
.long	0xd386be08,0xaec2272c,0xc4e0c0a6,0x000db56d
.long	0x00183045,0x00183045,0xffdeca39,0xffdeca39
.long	0xffcaf612,0xffcaf612,0x001629a3,0x001629a3
.long	0xf7a0d045,0xf7a0d045,0xa0a5ea39,0xa0a5ea39
.long	0x9d8d3612,0x9d8d3612,0x7fca89a3,0x7fca89a3
.long	0x002e67e7,0x002e67e7,0x00381e31,0x00381e31
.long	0x0017537f,0x0017537f,0x003bf91b,0x003bf91b
.long	0x75ab47e7,0x75ab47e7,0xaf7e3e31,0xaf7e3e31
.long	0x2707337f,0x2707337f,0x5ddf591b,0x5ddf591b
.long	0xffca213b,0xffca213b,0xffca213b,0xffca213b
.long	0xffd10b33,0xffd10b33,0xffd10b33,0xffd10b33
.long	0x9271813b,0x9271813b,0x9271813b,0x9271813b
.long	0x53b76b33,0x53b76b33,0x53b76b33,0x53b76b33
.long	0xfffe89e0,0xfffe89e0,0xfffe89e0,0xfffe89e0
.long	0xffd6b599,0xffd6b599,0xffd6b599,0xffd6b599
.long	0x613a89e0,0x613a89e0,0x613a89e0,0x613a89e0
.long	0x6e09d599,0x6e09d599,0x6e09d599,0x6e09d599
.long	0xfff05f90,0xfff05f90,0xfff05f90,0xfff05f90
.long	0xfff05f90,0xfff05f90,0xfff05f90,0xfff05f90
.long	0x83e25f90,0x83e25f90,0x83e25f90,0x83e25f90
.long	0x83e25f90,0x83e25f90,0x83e25f90,0x83e25f90
.long	0xffd669a8,0xffd669a8,0xffd669a8,0xffd669a8
.long	0xffd669a8,0xffd669a8,0xffd669a8,0xffd669a8
.long	0x990b69a8,0x990b69a8,0x990b69a8,0x990b69a8
.long	0x990b69a8,0x990b69a8,0x990b69a8,0x990b69a8
.long	0xffe421d5,0xffe421d5,0xffe421d5,0xffe421d5
.long	0xffe421d5,0xffe421d5,0xffe421d5,0xffe421d5
.long	0xed9ec1d5,0xed9ec1d5,0xed9ec1d5,0xed9ec1d5
.long	0xed9ec1d5,0xed9ec1d5,0xed9ec1d5,0xed9ec1d5
.long	0xfffc61bc,0xfffc61bc,0xfffc61bc,0xfffc61bc
.long	0xfffc61bc,0xfffc61bc,0xfffc61bc,0xfffc61bc
.long	0x9e33e1bc,0x9e33e1bc,0x9e33e1bc,0x9e33e1bc
.long	0x9e33e1bc,0x9e33e1bc,0x9e33e1bc,0x9e33e1bc
.long	0x0007eafd,0x0007eafd,0x0007eafd,0x0007eafd
.long	0x0007eafd,0x0007eafd,0x0007eafd,0x0007eafd
.long	0x72e78afd,0x72e78afd,0x72e78afd,0x72e78afd
.long	0x72e78afd,0x72e78afd,0x72e78afd,0x72e78afd
.long	0x0027cefe,0x0027cefe,0x0027cefe,0x0027cefe
.long	0x0027cefe,0x0027cefe,0x0027cefe,0x0027cefe
.long	0x73078efe,0x73078efe,0x73078efe,0x73078efe
.long	0x73078efe,0x73078efe,0x73078efe,0x73078efe
.long	0xffff9b09,0xffff9b09,0xffff9b09,0xffff9b09
.long	0xffff9b09,0xffff9b09,0xffff9b09,0xffff9b09
.long	0x92e0bb09,0x92e0bb09,0x92e0bb09,0x92e0bb09
.long	0x92e0bb09,0x92e0bb09,0x92e0bb09,0x92e0bb09
.long	0x0000a3fa,0x0000a3fa,0x0000a3fa,0x0000a3fa
.long	0x0000a3fa,0x0000a3fa,0x0000a3fa,0x0000a3fa
.long	0xff7fe3fa,0xff7fe3fa,0xff7fe3fa,0xff7fe3fa
.long	0xff7fe3fa,0xff7fe3fa,0xff7fe3fa,0xff7fe3fa
#ifndef __APPLE__
.text
.globl	wc_mldsa_poly_red_avx2
.type	wc_mldsa_poly_red_avx2,@function
.align	16
wc_mldsa_poly_red_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_poly_red_avx2
.p2align	4
_wc_mldsa_poly_red_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm10, %ymm10, %ymm10
        vmovdqu	mldsa_q(%rip), %ymm10
        vmovdqu	mldsa_v(%rip), %ymm11
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vpaddd	%ymm11, %ymm0, %ymm8
        vpaddd	%ymm11, %ymm1, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm2, %ymm8
        vpaddd	%ymm11, %ymm3, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm2, %ymm2
        vpsubd	%ymm9, %ymm3, %ymm3
        vpaddd	%ymm11, %ymm4, %ymm8
        vpaddd	%ymm11, %ymm5, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm4, %ymm4
        vpsubd	%ymm9, %ymm5, %ymm5
        vpaddd	%ymm11, %ymm6, %ymm8
        vpaddd	%ymm11, %ymm7, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm6, %ymm6
        vpsubd	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vpaddd	%ymm11, %ymm0, %ymm8
        vpaddd	%ymm11, %ymm1, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm2, %ymm8
        vpaddd	%ymm11, %ymm3, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm2, %ymm2
        vpsubd	%ymm9, %ymm3, %ymm3
        vpaddd	%ymm11, %ymm4, %ymm8
        vpaddd	%ymm11, %ymm5, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm4, %ymm4
        vpsubd	%ymm9, %ymm5, %ymm5
        vpaddd	%ymm11, %ymm6, %ymm8
        vpaddd	%ymm11, %ymm7, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm6, %ymm6
        vpsubd	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vpaddd	%ymm11, %ymm0, %ymm8
        vpaddd	%ymm11, %ymm1, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm2, %ymm8
        vpaddd	%ymm11, %ymm3, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm2, %ymm2
        vpsubd	%ymm9, %ymm3, %ymm3
        vpaddd	%ymm11, %ymm4, %ymm8
        vpaddd	%ymm11, %ymm5, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm4, %ymm4
        vpsubd	%ymm9, %ymm5, %ymm5
        vpaddd	%ymm11, %ymm6, %ymm8
        vpaddd	%ymm11, %ymm7, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm6, %ymm6
        vpsubd	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpaddd	%ymm11, %ymm0, %ymm8
        vpaddd	%ymm11, %ymm1, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm2, %ymm8
        vpaddd	%ymm11, %ymm3, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm2, %ymm2
        vpsubd	%ymm9, %ymm3, %ymm3
        vpaddd	%ymm11, %ymm4, %ymm8
        vpaddd	%ymm11, %ymm5, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm4, %ymm4
        vpsubd	%ymm9, %ymm5, %ymm5
        vpaddd	%ymm11, %ymm6, %ymm8
        vpaddd	%ymm11, %ymm7, %ymm9
        vpsrad	$23, %ymm8, %ymm8
        vpsrad	$23, %ymm9, %ymm9
        vpmulld	%ymm10, %ymm8, %ymm8
        vpmulld	%ymm10, %ymm9, %ymm9
        vpsubd	%ymm8, %ymm6, %ymm6
        vpsubd	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_poly_red_avx2,.-wc_mldsa_poly_red_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_ntt_avx2
.type	wc_mldsa_ntt_avx2,@function
.align	16
wc_mldsa_ntt_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_ntt_avx2
.p2align	4
_wc_mldsa_ntt_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm14, %ymm14, %ymm14
        vmovdqu	mldsa_q(%rip), %ymm14
        # ntt
        leaq	L_mldsa_avx2_zetas(%rip), %rdx
        vmovdqu	64(%rdx), %ymm11
        vmovdqu	96(%rdx), %ymm13
        # 128: 4/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	96(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vmovdqu	352(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vmovdqu	608(%rdi), %ymm4
        vmovdqu	736(%rdi), %ymm5
        vmovdqu	864(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 4/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 96(%rdi)
        vmovdqu	%ymm1, 224(%rdi)
        vmovdqu	%ymm2, 352(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vmovdqu	%ymm4, 608(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	%ymm6, 864(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        # 128: 3/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	192(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	448(%rdi), %ymm3
        vmovdqu	576(%rdi), %ymm4
        vmovdqu	704(%rdi), %ymm5
        vmovdqu	832(%rdi), %ymm6
        vmovdqu	960(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 3/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 704(%rdi)
        vmovdqu	%ymm6, 832(%rdi)
        vmovdqu	%ymm7, 960(%rdi)
        # 128: 2/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	32(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	288(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vmovdqu	544(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	800(%rdi), %ymm6
        vmovdqu	928(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 2/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 32(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        vmovdqu	%ymm3, 416(%rdi)
        vmovdqu	%ymm4, 544(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 800(%rdi)
        vmovdqu	%ymm7, 928(%rdi)
        # 128: 1/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	(%rdi), %ymm0
        vmovdqu	128(%rdi), %ymm1
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	384(%rdi), %ymm3
        vmovdqu	512(%rdi), %ymm4
        vmovdqu	640(%rdi), %ymm5
        vmovdqu	768(%rdi), %ymm6
        vmovdqu	896(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 1/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm2, 256(%rdi)
        vmovdqu	%ymm3, 384(%rdi)
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 640(%rdi)
        vmovdqu	%ymm6, 768(%rdi)
        vmovdqu	%ymm7, 896(%rdi)
        vmovdqu	%ymm1, %ymm4
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        # 32: 1/4
        vmovdqu	192(%rdx), %ymm10
        vmovdqu	224(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 1/4
        vmovdqu	256(%rdx), %ymm10
        vmovdqu	288(%rdx), %ymm12
        vmovdqu	320(%rdx), %ymm11
        vmovdqu	352(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 1/4
        vmovdqu	384(%rdx), %ymm10
        vmovdqu	416(%rdx), %ymm12
        vmovdqu	448(%rdx), %ymm11
        vmovdqu	480(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	512(%rdx), %ymm10
        vmovdqu	544(%rdx), %ymm12
        vmovdqu	576(%rdx), %ymm11
        vmovdqu	608(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 1/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	640(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	672(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	704(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	736(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 1/4
        vmovdqu	768(%rdx), %ymm10
        vmovdqu	800(%rdx), %ymm12
        vmovdqu	832(%rdx), %ymm11
        vmovdqu	864(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 1/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	896(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	928(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	960(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	992(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 1/4
        vmovdqu	1024(%rdx), %ymm10
        vmovdqu	1056(%rdx), %ymm12
        vmovdqu	1088(%rdx), %ymm11
        vmovdqu	1120(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 1/4
        vmovdqu	1152(%rdx), %ymm10
        vmovdqu	1184(%rdx), %ymm12
        vmovdqu	1216(%rdx), %ymm11
        vmovdqu	1248(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 1/4
        vmovdqu	1280(%rdx), %ymm10
        vmovdqu	1312(%rdx), %ymm12
        vmovdqu	1344(%rdx), %ymm11
        vmovdqu	1376(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        # 32: 2/4
        vmovdqu	1408(%rdx), %ymm10
        vmovdqu	1440(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 2/4
        vmovdqu	1472(%rdx), %ymm10
        vmovdqu	1504(%rdx), %ymm12
        vmovdqu	1536(%rdx), %ymm11
        vmovdqu	1568(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 2/4
        vmovdqu	1600(%rdx), %ymm10
        vmovdqu	1632(%rdx), %ymm12
        vmovdqu	1664(%rdx), %ymm11
        vmovdqu	1696(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	1728(%rdx), %ymm10
        vmovdqu	1760(%rdx), %ymm12
        vmovdqu	1792(%rdx), %ymm11
        vmovdqu	1824(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 2/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1856(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1888(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1920(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1952(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 2/4
        vmovdqu	1984(%rdx), %ymm10
        vmovdqu	2016(%rdx), %ymm12
        vmovdqu	2048(%rdx), %ymm11
        vmovdqu	2080(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 2/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	2112(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2144(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2176(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2208(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 2/4
        vmovdqu	2240(%rdx), %ymm10
        vmovdqu	2272(%rdx), %ymm12
        vmovdqu	2304(%rdx), %ymm11
        vmovdqu	2336(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 2/4
        vmovdqu	2368(%rdx), %ymm10
        vmovdqu	2400(%rdx), %ymm12
        vmovdqu	2432(%rdx), %ymm11
        vmovdqu	2464(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 2/4
        vmovdqu	2496(%rdx), %ymm10
        vmovdqu	2528(%rdx), %ymm12
        vmovdqu	2560(%rdx), %ymm11
        vmovdqu	2592(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        # 32: 3/4
        vmovdqu	2624(%rdx), %ymm10
        vmovdqu	2656(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 3/4
        vmovdqu	2688(%rdx), %ymm10
        vmovdqu	2720(%rdx), %ymm12
        vmovdqu	2752(%rdx), %ymm11
        vmovdqu	2784(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 3/4
        vmovdqu	2816(%rdx), %ymm10
        vmovdqu	2848(%rdx), %ymm12
        vmovdqu	2880(%rdx), %ymm11
        vmovdqu	2912(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	2944(%rdx), %ymm10
        vmovdqu	2976(%rdx), %ymm12
        vmovdqu	3008(%rdx), %ymm11
        vmovdqu	3040(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 3/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	3072(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	3104(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	3136(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	3168(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 3/4
        vmovdqu	3200(%rdx), %ymm10
        vmovdqu	3232(%rdx), %ymm12
        vmovdqu	3264(%rdx), %ymm11
        vmovdqu	3296(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 3/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	3328(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	3360(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	3392(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	3424(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 3/4
        vmovdqu	3456(%rdx), %ymm10
        vmovdqu	3488(%rdx), %ymm12
        vmovdqu	3520(%rdx), %ymm11
        vmovdqu	3552(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 3/4
        vmovdqu	3584(%rdx), %ymm10
        vmovdqu	3616(%rdx), %ymm12
        vmovdqu	3648(%rdx), %ymm11
        vmovdqu	3680(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 3/4
        vmovdqu	3712(%rdx), %ymm10
        vmovdqu	3744(%rdx), %ymm12
        vmovdqu	3776(%rdx), %ymm11
        vmovdqu	3808(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        # 32: 4/4
        vmovdqu	3840(%rdx), %ymm10
        vmovdqu	3872(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 4/4
        vmovdqu	3904(%rdx), %ymm10
        vmovdqu	3936(%rdx), %ymm12
        vmovdqu	3968(%rdx), %ymm11
        vmovdqu	4000(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 4/4
        vmovdqu	4032(%rdx), %ymm10
        vmovdqu	4064(%rdx), %ymm12
        vmovdqu	4096(%rdx), %ymm11
        vmovdqu	4128(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	4160(%rdx), %ymm10
        vmovdqu	4192(%rdx), %ymm12
        vmovdqu	4224(%rdx), %ymm11
        vmovdqu	4256(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 4/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	4288(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	4320(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	4352(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	4384(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 4/4
        vmovdqu	4416(%rdx), %ymm10
        vmovdqu	4448(%rdx), %ymm12
        vmovdqu	4480(%rdx), %ymm11
        vmovdqu	4512(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 4/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	4544(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	4576(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	4608(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	4640(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 4/4
        vmovdqu	4672(%rdx), %ymm10
        vmovdqu	4704(%rdx), %ymm12
        vmovdqu	4736(%rdx), %ymm11
        vmovdqu	4768(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 4/4
        vmovdqu	4800(%rdx), %ymm10
        vmovdqu	4832(%rdx), %ymm12
        vmovdqu	4864(%rdx), %ymm11
        vmovdqu	4896(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 4/4
        vmovdqu	4928(%rdx), %ymm10
        vmovdqu	4960(%rdx), %ymm12
        vmovdqu	4992(%rdx), %ymm11
        vmovdqu	5024(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_ntt_avx2,.-wc_mldsa_ntt_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_ntt_full_avx2
.type	wc_mldsa_ntt_full_avx2,@function
.align	16
wc_mldsa_ntt_full_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_ntt_full_avx2
.p2align	4
_wc_mldsa_ntt_full_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm14, %ymm14, %ymm14
        vmovdqu	mldsa_q(%rip), %ymm14
        # ntt
        leaq	L_mldsa_avx2_zetas(%rip), %rdx
        vmovdqu	64(%rdx), %ymm11
        vmovdqu	96(%rdx), %ymm13
        # 128: 4/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	96(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vmovdqu	352(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vmovdqu	608(%rdi), %ymm4
        vmovdqu	736(%rdi), %ymm5
        vmovdqu	864(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 4/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 96(%rdi)
        vmovdqu	%ymm1, 224(%rdi)
        vmovdqu	%ymm2, 352(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vmovdqu	%ymm4, 608(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	%ymm6, 864(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        # 128: 3/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	192(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	448(%rdi), %ymm3
        vmovdqu	576(%rdi), %ymm4
        vmovdqu	704(%rdi), %ymm5
        vmovdqu	832(%rdi), %ymm6
        vmovdqu	960(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 3/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 704(%rdi)
        vmovdqu	%ymm6, 832(%rdi)
        vmovdqu	%ymm7, 960(%rdi)
        # 128: 2/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	32(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	288(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vmovdqu	544(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	800(%rdi), %ymm6
        vmovdqu	928(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 2/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm0, 32(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        vmovdqu	%ymm3, 416(%rdi)
        vmovdqu	%ymm4, 544(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 800(%rdi)
        vmovdqu	%ymm7, 928(%rdi)
        # 128: 1/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	(%rdi), %ymm0
        vmovdqu	128(%rdi), %ymm1
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	384(%rdi), %ymm3
        vmovdqu	512(%rdi), %ymm4
        vmovdqu	640(%rdi), %ymm5
        vmovdqu	768(%rdi), %ymm6
        vmovdqu	896(%rdi), %ymm7
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 64: 1/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vpmulld	%ymm13, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        vmovdqu	%ymm2, 256(%rdi)
        vmovdqu	%ymm3, 384(%rdi)
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 640(%rdi)
        vmovdqu	%ymm6, 768(%rdi)
        vmovdqu	%ymm7, 896(%rdi)
        vmovdqu	%ymm1, %ymm4
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        # 32: 1/4
        vmovdqu	192(%rdx), %ymm10
        vmovdqu	224(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 1/4
        vmovdqu	256(%rdx), %ymm10
        vmovdqu	288(%rdx), %ymm12
        vmovdqu	320(%rdx), %ymm11
        vmovdqu	352(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 1/4
        vmovdqu	384(%rdx), %ymm10
        vmovdqu	416(%rdx), %ymm12
        vmovdqu	448(%rdx), %ymm11
        vmovdqu	480(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	512(%rdx), %ymm10
        vmovdqu	544(%rdx), %ymm12
        vmovdqu	576(%rdx), %ymm11
        vmovdqu	608(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 1/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	640(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	672(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	704(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	736(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 1/4
        vmovdqu	768(%rdx), %ymm10
        vmovdqu	800(%rdx), %ymm12
        vmovdqu	832(%rdx), %ymm11
        vmovdqu	864(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 1/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	896(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	928(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	960(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	992(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 1/4
        vmovdqu	1024(%rdx), %ymm10
        vmovdqu	1056(%rdx), %ymm12
        vmovdqu	1088(%rdx), %ymm11
        vmovdqu	1120(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 1/4
        vmovdqu	1152(%rdx), %ymm10
        vmovdqu	1184(%rdx), %ymm12
        vmovdqu	1216(%rdx), %ymm11
        vmovdqu	1248(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 1/4
        vmovdqu	1280(%rdx), %ymm10
        vmovdqu	1312(%rdx), %ymm12
        vmovdqu	1344(%rdx), %ymm11
        vmovdqu	1376(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm0
        vperm2i128	$49, %ymm9, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm2
        vperm2i128	$49, %ymm9, %ymm8, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm4
        vperm2i128	$49, %ymm9, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm6
        vperm2i128	$49, %ymm9, %ymm8, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        # 32: 2/4
        vmovdqu	1408(%rdx), %ymm10
        vmovdqu	1440(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 2/4
        vmovdqu	1472(%rdx), %ymm10
        vmovdqu	1504(%rdx), %ymm12
        vmovdqu	1536(%rdx), %ymm11
        vmovdqu	1568(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 2/4
        vmovdqu	1600(%rdx), %ymm10
        vmovdqu	1632(%rdx), %ymm12
        vmovdqu	1664(%rdx), %ymm11
        vmovdqu	1696(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	1728(%rdx), %ymm10
        vmovdqu	1760(%rdx), %ymm12
        vmovdqu	1792(%rdx), %ymm11
        vmovdqu	1824(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 2/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1856(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1888(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1920(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1952(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 2/4
        vmovdqu	1984(%rdx), %ymm10
        vmovdqu	2016(%rdx), %ymm12
        vmovdqu	2048(%rdx), %ymm11
        vmovdqu	2080(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 2/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	2112(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2144(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2176(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2208(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 2/4
        vmovdqu	2240(%rdx), %ymm10
        vmovdqu	2272(%rdx), %ymm12
        vmovdqu	2304(%rdx), %ymm11
        vmovdqu	2336(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 2/4
        vmovdqu	2368(%rdx), %ymm10
        vmovdqu	2400(%rdx), %ymm12
        vmovdqu	2432(%rdx), %ymm11
        vmovdqu	2464(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 2/4
        vmovdqu	2496(%rdx), %ymm10
        vmovdqu	2528(%rdx), %ymm12
        vmovdqu	2560(%rdx), %ymm11
        vmovdqu	2592(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm0
        vperm2i128	$49, %ymm9, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm2
        vperm2i128	$49, %ymm9, %ymm8, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm4
        vperm2i128	$49, %ymm9, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm6
        vperm2i128	$49, %ymm9, %ymm8, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        # 32: 3/4
        vmovdqu	2624(%rdx), %ymm10
        vmovdqu	2656(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 3/4
        vmovdqu	2688(%rdx), %ymm10
        vmovdqu	2720(%rdx), %ymm12
        vmovdqu	2752(%rdx), %ymm11
        vmovdqu	2784(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 3/4
        vmovdqu	2816(%rdx), %ymm10
        vmovdqu	2848(%rdx), %ymm12
        vmovdqu	2880(%rdx), %ymm11
        vmovdqu	2912(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	2944(%rdx), %ymm10
        vmovdqu	2976(%rdx), %ymm12
        vmovdqu	3008(%rdx), %ymm11
        vmovdqu	3040(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 3/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	3072(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	3104(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	3136(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	3168(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 3/4
        vmovdqu	3200(%rdx), %ymm10
        vmovdqu	3232(%rdx), %ymm12
        vmovdqu	3264(%rdx), %ymm11
        vmovdqu	3296(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 3/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	3328(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	3360(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	3392(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	3424(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 3/4
        vmovdqu	3456(%rdx), %ymm10
        vmovdqu	3488(%rdx), %ymm12
        vmovdqu	3520(%rdx), %ymm11
        vmovdqu	3552(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 3/4
        vmovdqu	3584(%rdx), %ymm10
        vmovdqu	3616(%rdx), %ymm12
        vmovdqu	3648(%rdx), %ymm11
        vmovdqu	3680(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 3/4
        vmovdqu	3712(%rdx), %ymm10
        vmovdqu	3744(%rdx), %ymm12
        vmovdqu	3776(%rdx), %ymm11
        vmovdqu	3808(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm0
        vperm2i128	$49, %ymm9, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm2
        vperm2i128	$49, %ymm9, %ymm8, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm4
        vperm2i128	$49, %ymm9, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm6
        vperm2i128	$49, %ymm9, %ymm8, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        # 32: 4/4
        vmovdqu	3840(%rdx), %ymm10
        vmovdqu	3872(%rdx), %ymm12
        vpmulld	%ymm12, %ymm4, %ymm8
        vmovshdup	%ymm4, %ymm9
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm4
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm5
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm10, %ymm6, %ymm6
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm6
        vpaddd	%ymm8, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm10, %ymm7, %ymm7
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm3, %ymm7
        vpaddd	%ymm8, %ymm3, %ymm3
        # 16: 4/4
        vmovdqu	3904(%rdx), %ymm10
        vmovdqu	3936(%rdx), %ymm12
        vmovdqu	3968(%rdx), %ymm11
        vmovdqu	4000(%rdx), %ymm13
        vpmulld	%ymm12, %ymm2, %ymm8
        vmovshdup	%ymm2, %ymm9
        vpmuldq	%ymm10, %ymm2, %ymm2
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm2
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm10, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm1, %ymm3
        vpaddd	%ymm8, %ymm1, %ymm1
        vpmulld	%ymm13, %ymm6, %ymm8
        vmovshdup	%ymm6, %ymm9
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm6
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm5, %ymm7
        vpaddd	%ymm8, %ymm5, %ymm5
        # 8: 4/4
        vmovdqu	4032(%rdx), %ymm10
        vmovdqu	4064(%rdx), %ymm12
        vmovdqu	4096(%rdx), %ymm11
        vmovdqu	4128(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        vmovdqu	4160(%rdx), %ymm10
        vmovdqu	4192(%rdx), %ymm12
        vmovdqu	4224(%rdx), %ymm11
        vmovdqu	4256(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 4: 4/4
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	4288(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	4320(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	4352(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	4384(%rdx), %ymm13
        vpmulld	%ymm12, %ymm1, %ymm0
        vmovshdup	%ymm1, %ymm2
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm1, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm8, %ymm1
        vpaddd	%ymm0, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm0
        vmovshdup	%ymm3, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm0, %ymm15
        vpmuldq	%ymm14, %ymm0, %ymm0
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm0, %ymm3, %ymm0
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm0, %ymm0
        vpblendd	$0xaa, %ymm15, %ymm0, %ymm0
        vpsubd	%ymm0, %ymm9, %ymm3
        vpaddd	%ymm0, %ymm9, %ymm9
        # 2: 4/4
        vmovdqu	4416(%rdx), %ymm10
        vmovdqu	4448(%rdx), %ymm12
        vmovdqu	4480(%rdx), %ymm11
        vmovdqu	4512(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 4: 4/4
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	4544(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	4576(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	4608(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	4640(%rdx), %ymm13
        vpmulld	%ymm12, %ymm5, %ymm4
        vmovshdup	%ymm5, %ymm6
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm5, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm8, %ymm5
        vpaddd	%ymm4, %ymm8, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm4
        vmovshdup	%ymm7, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm7, %ymm4
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm9, %ymm7
        vpaddd	%ymm4, %ymm9, %ymm9
        # 2: 4/4
        vmovdqu	4672(%rdx), %ymm10
        vmovdqu	4704(%rdx), %ymm12
        vmovdqu	4736(%rdx), %ymm11
        vmovdqu	4768(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        # 1: 4/4
        vmovdqu	4800(%rdx), %ymm10
        vmovdqu	4832(%rdx), %ymm12
        vmovdqu	4864(%rdx), %ymm11
        vmovdqu	4896(%rdx), %ymm13
        vpsllq	$32, %ymm1, %ymm8
        vpsrlq	$32, %ymm0, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm0, %ymm0
        vpblendd	$0x55, %ymm9, %ymm1, %ymm1
        vpsllq	$32, %ymm3, %ymm8
        vpsrlq	$32, %ymm2, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm2, %ymm2
        vpblendd	$0x55, %ymm9, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm1, %ymm8
        vmovshdup	%ymm1, %ymm9
        vpmuldq	%ymm10, %ymm1, %ymm1
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm1, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm0, %ymm1
        vpaddd	%ymm8, %ymm0, %ymm0
        vpmulld	%ymm13, %ymm3, %ymm8
        vmovshdup	%ymm3, %ymm9
        vpmuldq	%ymm11, %ymm3, %ymm3
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm3, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm2, %ymm3
        vpaddd	%ymm8, %ymm2, %ymm2
        # 1: 4/4
        vmovdqu	4928(%rdx), %ymm10
        vmovdqu	4960(%rdx), %ymm12
        vmovdqu	4992(%rdx), %ymm11
        vmovdqu	5024(%rdx), %ymm13
        vpsllq	$32, %ymm5, %ymm8
        vpsrlq	$32, %ymm4, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm4, %ymm4
        vpblendd	$0x55, %ymm9, %ymm5, %ymm5
        vpsllq	$32, %ymm7, %ymm8
        vpsrlq	$32, %ymm6, %ymm9
        vpblendd	$0xaa, %ymm8, %ymm6, %ymm6
        vpblendd	$0x55, %ymm9, %ymm7, %ymm7
        vpmulld	%ymm12, %ymm5, %ymm8
        vmovshdup	%ymm5, %ymm9
        vpmuldq	%ymm10, %ymm5, %ymm5
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm5, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm4, %ymm5
        vpaddd	%ymm8, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm7, %ymm8
        vmovshdup	%ymm7, %ymm9
        vpmuldq	%ymm11, %ymm7, %ymm7
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm7, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm8, %ymm8
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm8
        vpsubd	%ymm8, %ymm6, %ymm7
        vpaddd	%ymm8, %ymm6, %ymm6
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm0
        vperm2i128	$49, %ymm9, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm2
        vperm2i128	$49, %ymm9, %ymm8, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm4
        vperm2i128	$49, %ymm9, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vperm2i128	$32, %ymm9, %ymm8, %ymm6
        vperm2i128	$49, %ymm9, %ymm8, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_ntt_full_avx2,.-wc_mldsa_ntt_full_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_invntt_avx2
.type	wc_mldsa_invntt_avx2,@function
.align	16
wc_mldsa_invntt_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_invntt_avx2
.p2align	4
_wc_mldsa_invntt_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm14, %ymm14, %ymm14
        vmovdqu	mldsa_q(%rip), %ymm14
        # invntt
        leaq	L_mldsa_avx2_zetas_inv(%rip), %rdx
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        # 1: 1/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	64(%rdx), %ymm11
        vmovdqu	96(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 1/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vmovdqu	192(%rdx), %ymm11
        vmovdqu	224(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 1/4
        vmovdqu	256(%rdx), %ymm10
        vmovdqu	288(%rdx), %ymm12
        vmovdqu	320(%rdx), %ymm11
        vmovdqu	352(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 1/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	384(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	416(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	448(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	480(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 1/4
        vmovdqu	512(%rdx), %ymm10
        vmovdqu	544(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 1: 1/4
        vmovdqu	576(%rdx), %ymm10
        vmovdqu	608(%rdx), %ymm12
        vmovdqu	640(%rdx), %ymm11
        vmovdqu	672(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 1/4
        vmovdqu	704(%rdx), %ymm10
        vmovdqu	736(%rdx), %ymm12
        vmovdqu	768(%rdx), %ymm11
        vmovdqu	800(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 1/4
        vmovdqu	832(%rdx), %ymm10
        vmovdqu	864(%rdx), %ymm12
        vmovdqu	896(%rdx), %ymm11
        vmovdqu	928(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 1/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	960(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	992(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	1024(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	1056(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 1/4
        vmovdqu	1088(%rdx), %ymm10
        vmovdqu	1120(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 1/4
        vmovdqu	1152(%rdx), %ymm10
        vmovdqu	1184(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        # 1: 2/4
        vmovdqu	1216(%rdx), %ymm10
        vmovdqu	1248(%rdx), %ymm12
        vmovdqu	1280(%rdx), %ymm11
        vmovdqu	1312(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 2/4
        vmovdqu	1344(%rdx), %ymm10
        vmovdqu	1376(%rdx), %ymm12
        vmovdqu	1408(%rdx), %ymm11
        vmovdqu	1440(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 2/4
        vmovdqu	1472(%rdx), %ymm10
        vmovdqu	1504(%rdx), %ymm12
        vmovdqu	1536(%rdx), %ymm11
        vmovdqu	1568(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 2/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	1600(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	1632(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	1664(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	1696(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 2/4
        vmovdqu	1728(%rdx), %ymm10
        vmovdqu	1760(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 1: 2/4
        vmovdqu	1792(%rdx), %ymm10
        vmovdqu	1824(%rdx), %ymm12
        vmovdqu	1856(%rdx), %ymm11
        vmovdqu	1888(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 2/4
        vmovdqu	1920(%rdx), %ymm10
        vmovdqu	1952(%rdx), %ymm12
        vmovdqu	1984(%rdx), %ymm11
        vmovdqu	2016(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 2/4
        vmovdqu	2048(%rdx), %ymm10
        vmovdqu	2080(%rdx), %ymm12
        vmovdqu	2112(%rdx), %ymm11
        vmovdqu	2144(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 2/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	2176(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	2208(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	2240(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	2272(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 2/4
        vmovdqu	2304(%rdx), %ymm10
        vmovdqu	2336(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 2/4
        vmovdqu	2368(%rdx), %ymm10
        vmovdqu	2400(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        # 1: 3/4
        vmovdqu	2432(%rdx), %ymm10
        vmovdqu	2464(%rdx), %ymm12
        vmovdqu	2496(%rdx), %ymm11
        vmovdqu	2528(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 3/4
        vmovdqu	2560(%rdx), %ymm10
        vmovdqu	2592(%rdx), %ymm12
        vmovdqu	2624(%rdx), %ymm11
        vmovdqu	2656(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 3/4
        vmovdqu	2688(%rdx), %ymm10
        vmovdqu	2720(%rdx), %ymm12
        vmovdqu	2752(%rdx), %ymm11
        vmovdqu	2784(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 3/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	2816(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	2848(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	2880(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	2912(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 3/4
        vmovdqu	2944(%rdx), %ymm10
        vmovdqu	2976(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 1: 3/4
        vmovdqu	3008(%rdx), %ymm10
        vmovdqu	3040(%rdx), %ymm12
        vmovdqu	3072(%rdx), %ymm11
        vmovdqu	3104(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 3/4
        vmovdqu	3136(%rdx), %ymm10
        vmovdqu	3168(%rdx), %ymm12
        vmovdqu	3200(%rdx), %ymm11
        vmovdqu	3232(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 3/4
        vmovdqu	3264(%rdx), %ymm10
        vmovdqu	3296(%rdx), %ymm12
        vmovdqu	3328(%rdx), %ymm11
        vmovdqu	3360(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 3/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	3392(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	3424(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	3456(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	3488(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 3/4
        vmovdqu	3520(%rdx), %ymm10
        vmovdqu	3552(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 3/4
        vmovdqu	3584(%rdx), %ymm10
        vmovdqu	3616(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        # 1: 4/4
        vmovdqu	3648(%rdx), %ymm10
        vmovdqu	3680(%rdx), %ymm12
        vmovdqu	3712(%rdx), %ymm11
        vmovdqu	3744(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 4/4
        vmovdqu	3776(%rdx), %ymm10
        vmovdqu	3808(%rdx), %ymm12
        vmovdqu	3840(%rdx), %ymm11
        vmovdqu	3872(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 4/4
        vmovdqu	3904(%rdx), %ymm10
        vmovdqu	3936(%rdx), %ymm12
        vmovdqu	3968(%rdx), %ymm11
        vmovdqu	4000(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 4/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	4032(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	4064(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	4096(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	4128(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 4/4
        vmovdqu	4160(%rdx), %ymm10
        vmovdqu	4192(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 1: 4/4
        vmovdqu	4224(%rdx), %ymm10
        vmovdqu	4256(%rdx), %ymm12
        vmovdqu	4288(%rdx), %ymm11
        vmovdqu	4320(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 4/4
        vmovdqu	4352(%rdx), %ymm10
        vmovdqu	4384(%rdx), %ymm12
        vmovdqu	4416(%rdx), %ymm11
        vmovdqu	4448(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 4/4
        vmovdqu	4480(%rdx), %ymm10
        vmovdqu	4512(%rdx), %ymm12
        vmovdqu	4544(%rdx), %ymm11
        vmovdqu	4576(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 4/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	4608(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	4640(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	4672(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	4704(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 4/4
        vmovdqu	4736(%rdx), %ymm10
        vmovdqu	4768(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 4/4
        vmovdqu	4800(%rdx), %ymm10
        vmovdqu	4832(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	%ymm3, %ymm6
        vmovdqu	96(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vmovdqu	352(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vmovdqu	608(%rdi), %ymm4
        vmovdqu	736(%rdi), %ymm5
        # 64: 4/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 4/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 96(%rdi)
        vmovdqu	%ymm1, 224(%rdi)
        vmovdqu	%ymm2, 352(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vmovdqu	%ymm4, 608(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	%ymm6, 864(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	192(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	448(%rdi), %ymm3
        vmovdqu	576(%rdi), %ymm4
        vmovdqu	704(%rdi), %ymm5
        vmovdqu	832(%rdi), %ymm6
        vmovdqu	960(%rdi), %ymm7
        # 64: 3/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 3/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 704(%rdi)
        vmovdqu	%ymm6, 832(%rdi)
        vmovdqu	%ymm7, 960(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	32(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	288(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vmovdqu	544(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	800(%rdi), %ymm6
        vmovdqu	928(%rdi), %ymm7
        # 64: 2/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 2/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 32(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        vmovdqu	%ymm3, 416(%rdi)
        vmovdqu	%ymm4, 544(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 800(%rdi)
        vmovdqu	%ymm7, 928(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	(%rdi), %ymm0
        vmovdqu	128(%rdi), %ymm1
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	384(%rdi), %ymm3
        vmovdqu	512(%rdi), %ymm4
        vmovdqu	640(%rdi), %ymm5
        vmovdqu	768(%rdi), %ymm6
        vmovdqu	896(%rdi), %ymm7
        # 64: 1/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 1/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 128(%rdi)
        vmovdqu	%ymm2, 256(%rdi)
        vmovdqu	%ymm3, 384(%rdi)
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 640(%rdi)
        vmovdqu	%ymm6, 768(%rdi)
        vmovdqu	%ymm7, 896(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_invntt_avx2,.-wc_mldsa_invntt_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_invntt_full_avx2
.type	wc_mldsa_invntt_full_avx2,@function
.align	16
wc_mldsa_invntt_full_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_invntt_full_avx2
.p2align	4
_wc_mldsa_invntt_full_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm14, %ymm14, %ymm14
        vmovdqu	mldsa_q(%rip), %ymm14
        # invntt
        leaq	L_mldsa_avx2_zetas_inv(%rip), %rdx
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        # 1: 1/4
        vmovdqu	(%rdx), %ymm10
        vmovdqu	32(%rdx), %ymm12
        vmovdqu	64(%rdx), %ymm11
        vmovdqu	96(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 1/4
        vmovdqu	128(%rdx), %ymm10
        vmovdqu	160(%rdx), %ymm12
        vmovdqu	192(%rdx), %ymm11
        vmovdqu	224(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 1/4
        vmovdqu	256(%rdx), %ymm10
        vmovdqu	288(%rdx), %ymm12
        vmovdqu	320(%rdx), %ymm11
        vmovdqu	352(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 1/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	384(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	416(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	448(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	480(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 1/4
        vmovdqu	512(%rdx), %ymm10
        vmovdqu	544(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpermq	$0xd8, %ymm4, %ymm4
        vpermq	$0xd8, %ymm5, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpermq	$0xd8, %ymm6, %ymm6
        vpermq	$0xd8, %ymm7, %ymm7
        # 1: 1/4
        vmovdqu	576(%rdx), %ymm10
        vmovdqu	608(%rdx), %ymm12
        vmovdqu	640(%rdx), %ymm11
        vmovdqu	672(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 1/4
        vmovdqu	704(%rdx), %ymm10
        vmovdqu	736(%rdx), %ymm12
        vmovdqu	768(%rdx), %ymm11
        vmovdqu	800(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 1/4
        vmovdqu	832(%rdx), %ymm10
        vmovdqu	864(%rdx), %ymm12
        vmovdqu	896(%rdx), %ymm11
        vmovdqu	928(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 1/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	960(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	992(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	1024(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	1056(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 1/4
        vmovdqu	1088(%rdx), %ymm10
        vmovdqu	1120(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 1/4
        vmovdqu	1152(%rdx), %ymm10
        vmovdqu	1184(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        # 1: 2/4
        vmovdqu	1216(%rdx), %ymm10
        vmovdqu	1248(%rdx), %ymm12
        vmovdqu	1280(%rdx), %ymm11
        vmovdqu	1312(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 2/4
        vmovdqu	1344(%rdx), %ymm10
        vmovdqu	1376(%rdx), %ymm12
        vmovdqu	1408(%rdx), %ymm11
        vmovdqu	1440(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 2/4
        vmovdqu	1472(%rdx), %ymm10
        vmovdqu	1504(%rdx), %ymm12
        vmovdqu	1536(%rdx), %ymm11
        vmovdqu	1568(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 2/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	1600(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	1632(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	1664(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	1696(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 2/4
        vmovdqu	1728(%rdx), %ymm10
        vmovdqu	1760(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpermq	$0xd8, %ymm4, %ymm4
        vpermq	$0xd8, %ymm5, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpermq	$0xd8, %ymm6, %ymm6
        vpermq	$0xd8, %ymm7, %ymm7
        # 1: 2/4
        vmovdqu	1792(%rdx), %ymm10
        vmovdqu	1824(%rdx), %ymm12
        vmovdqu	1856(%rdx), %ymm11
        vmovdqu	1888(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 2/4
        vmovdqu	1920(%rdx), %ymm10
        vmovdqu	1952(%rdx), %ymm12
        vmovdqu	1984(%rdx), %ymm11
        vmovdqu	2016(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 2/4
        vmovdqu	2048(%rdx), %ymm10
        vmovdqu	2080(%rdx), %ymm12
        vmovdqu	2112(%rdx), %ymm11
        vmovdqu	2144(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 2/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	2176(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	2208(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	2240(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	2272(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 2/4
        vmovdqu	2304(%rdx), %ymm10
        vmovdqu	2336(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 2/4
        vmovdqu	2368(%rdx), %ymm10
        vmovdqu	2400(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        # 1: 3/4
        vmovdqu	2432(%rdx), %ymm10
        vmovdqu	2464(%rdx), %ymm12
        vmovdqu	2496(%rdx), %ymm11
        vmovdqu	2528(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 3/4
        vmovdqu	2560(%rdx), %ymm10
        vmovdqu	2592(%rdx), %ymm12
        vmovdqu	2624(%rdx), %ymm11
        vmovdqu	2656(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 3/4
        vmovdqu	2688(%rdx), %ymm10
        vmovdqu	2720(%rdx), %ymm12
        vmovdqu	2752(%rdx), %ymm11
        vmovdqu	2784(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 3/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	2816(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	2848(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	2880(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	2912(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 3/4
        vmovdqu	2944(%rdx), %ymm10
        vmovdqu	2976(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpermq	$0xd8, %ymm4, %ymm4
        vpermq	$0xd8, %ymm5, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpermq	$0xd8, %ymm6, %ymm6
        vpermq	$0xd8, %ymm7, %ymm7
        # 1: 3/4
        vmovdqu	3008(%rdx), %ymm10
        vmovdqu	3040(%rdx), %ymm12
        vmovdqu	3072(%rdx), %ymm11
        vmovdqu	3104(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 3/4
        vmovdqu	3136(%rdx), %ymm10
        vmovdqu	3168(%rdx), %ymm12
        vmovdqu	3200(%rdx), %ymm11
        vmovdqu	3232(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 3/4
        vmovdqu	3264(%rdx), %ymm10
        vmovdqu	3296(%rdx), %ymm12
        vmovdqu	3328(%rdx), %ymm11
        vmovdqu	3360(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 3/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	3392(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	3424(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	3456(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	3488(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 3/4
        vmovdqu	3520(%rdx), %ymm10
        vmovdqu	3552(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 3/4
        vmovdqu	3584(%rdx), %ymm10
        vmovdqu	3616(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpunpckldq	%ymm1, %ymm0, %ymm8
        vpunpckhdq	%ymm1, %ymm0, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpunpckldq	%ymm3, %ymm2, %ymm8
        vpunpckhdq	%ymm3, %ymm2, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        # 1: 4/4
        vmovdqu	3648(%rdx), %ymm10
        vmovdqu	3680(%rdx), %ymm12
        vmovdqu	3712(%rdx), %ymm11
        vmovdqu	3744(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 2: 4/4
        vmovdqu	3776(%rdx), %ymm10
        vmovdqu	3808(%rdx), %ymm12
        vmovdqu	3840(%rdx), %ymm11
        vmovdqu	3872(%rdx), %ymm13
        vpshufd	$0xd8, %ymm0, %ymm8
        vpshufd	$0xd8, %ymm1, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm0
        vpunpckhdq	%ymm9, %ymm8, %ymm1
        vpshufd	$0xd8, %ymm2, %ymm8
        vpshufd	$0xd8, %ymm3, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm2
        vpunpckhdq	%ymm9, %ymm8, %ymm3
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 4: 4/4
        vmovdqu	3904(%rdx), %ymm10
        vmovdqu	3936(%rdx), %ymm12
        vmovdqu	3968(%rdx), %ymm11
        vmovdqu	4000(%rdx), %ymm13
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm1
        vpunpcklqdq	%ymm3, %ymm2, %ymm9
        vpunpckhqdq	%ymm3, %ymm2, %ymm3
        vpsubd	%ymm1, %ymm8, %ymm0
        vpaddd	%ymm1, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm0, %ymm1
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm10, %ymm0, %ymm0
        vpmuldq	%ymm10, %ymm2, %ymm2
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm0, %ymm1
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm9, %ymm0
        vpaddd	%ymm3, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm0, %ymm3
        vmovshdup	%ymm0, %ymm2
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm2, %ymm2
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm0, %ymm3
        vpsubq	%ymm15, %ymm2, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 8: 4/4
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	4032(%rdx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	4064(%rdx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	4096(%rdx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	4128(%rdx), %ymm13
        vpsubd	%ymm1, %ymm0, %ymm8
        vpaddd	%ymm1, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm1
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm1, %ymm15
        vpmuldq	%ymm14, %ymm1, %ymm1
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm1, %ymm8, %ymm1
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm1, %ymm1
        vpblendd	$0xaa, %ymm15, %ymm1, %ymm1
        vpsubd	%ymm3, %ymm2, %ymm8
        vpaddd	%ymm3, %ymm2, %ymm2
        vpmulld	%ymm13, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        # 16: 4/4
        vmovdqu	4160(%rdx), %ymm10
        vmovdqu	4192(%rdx), %ymm12
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vpunpckldq	%ymm5, %ymm4, %ymm8
        vpunpckhdq	%ymm5, %ymm4, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpermq	$0xd8, %ymm4, %ymm4
        vpermq	$0xd8, %ymm5, %ymm5
        vpunpckldq	%ymm7, %ymm6, %ymm8
        vpunpckhdq	%ymm7, %ymm6, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpermq	$0xd8, %ymm6, %ymm6
        vpermq	$0xd8, %ymm7, %ymm7
        # 1: 4/4
        vmovdqu	4224(%rdx), %ymm10
        vmovdqu	4256(%rdx), %ymm12
        vmovdqu	4288(%rdx), %ymm11
        vmovdqu	4320(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vmovshdup	%ymm11, %ymm11
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 2: 4/4
        vmovdqu	4352(%rdx), %ymm10
        vmovdqu	4384(%rdx), %ymm12
        vmovdqu	4416(%rdx), %ymm11
        vmovdqu	4448(%rdx), %ymm13
        vpshufd	$0xd8, %ymm4, %ymm8
        vpshufd	$0xd8, %ymm5, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm4
        vpunpckhdq	%ymm9, %ymm8, %ymm5
        vpshufd	$0xd8, %ymm6, %ymm8
        vpshufd	$0xd8, %ymm7, %ymm9
        vpunpckldq	%ymm9, %ymm8, %ymm6
        vpunpckhdq	%ymm9, %ymm8, %ymm7
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 4: 4/4
        vmovdqu	4480(%rdx), %ymm10
        vmovdqu	4512(%rdx), %ymm12
        vmovdqu	4544(%rdx), %ymm11
        vmovdqu	4576(%rdx), %ymm13
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm5
        vpunpcklqdq	%ymm7, %ymm6, %ymm9
        vpunpckhqdq	%ymm7, %ymm6, %ymm7
        vpsubd	%ymm5, %ymm8, %ymm4
        vpaddd	%ymm5, %ymm8, %ymm8
        vpmulld	%ymm12, %ymm4, %ymm5
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm10, %ymm6, %ymm6
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm4, %ymm5
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm9, %ymm4
        vpaddd	%ymm7, %ymm9, %ymm9
        vpmulld	%ymm13, %ymm4, %ymm7
        vmovshdup	%ymm4, %ymm6
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm6, %ymm6
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm4, %ymm7
        vpsubq	%ymm15, %ymm6, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 8: 4/4
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	4608(%rdx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	4640(%rdx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	4672(%rdx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	4704(%rdx), %ymm13
        vpsubd	%ymm5, %ymm4, %ymm8
        vpaddd	%ymm5, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm7, %ymm6, %ymm8
        vpaddd	%ymm7, %ymm6, %ymm6
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 16: 4/4
        vmovdqu	4736(%rdx), %ymm10
        vmovdqu	4768(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 32: 4/4
        vmovdqu	4800(%rdx), %ymm10
        vmovdqu	4832(%rdx), %ymm12
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	%ymm3, %ymm6
        vmovdqu	96(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vmovdqu	352(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vmovdqu	608(%rdi), %ymm4
        vmovdqu	736(%rdi), %ymm5
        # 64: 4/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 4/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 96(%rdi)
        vmovdqu	%ymm1, 224(%rdi)
        vmovdqu	%ymm2, 352(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vmovdqu	%ymm4, 608(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	%ymm6, 864(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	192(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	448(%rdi), %ymm3
        vmovdqu	576(%rdi), %ymm4
        vmovdqu	704(%rdi), %ymm5
        vmovdqu	832(%rdi), %ymm6
        vmovdqu	960(%rdi), %ymm7
        # 64: 3/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 3/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 704(%rdi)
        vmovdqu	%ymm6, 832(%rdi)
        vmovdqu	%ymm7, 960(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	32(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	288(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vmovdqu	544(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	800(%rdi), %ymm6
        vmovdqu	928(%rdi), %ymm7
        # 64: 2/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 2/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, 32(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        vmovdqu	%ymm3, 416(%rdi)
        vmovdqu	%ymm4, 544(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 800(%rdi)
        vmovdqu	%ymm7, 928(%rdi)
        vmovdqu	4864(%rdx), %ymm10
        vmovdqu	4896(%rdx), %ymm12
        vmovdqu	4928(%rdx), %ymm11
        vmovdqu	4960(%rdx), %ymm13
        vmovdqu	(%rdi), %ymm0
        vmovdqu	128(%rdi), %ymm1
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	384(%rdi), %ymm3
        vmovdqu	512(%rdi), %ymm4
        vmovdqu	640(%rdi), %ymm5
        vmovdqu	768(%rdi), %ymm6
        vmovdqu	896(%rdi), %ymm7
        # 64: 1/4
        vpsubd	%ymm2, %ymm0, %ymm8
        vpaddd	%ymm2, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm2
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm2, %ymm15
        vpmuldq	%ymm14, %ymm2, %ymm2
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm2, %ymm8, %ymm2
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm2, %ymm2
        vpblendd	$0xaa, %ymm15, %ymm2, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm8
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm3
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm3, %ymm15
        vpmuldq	%ymm14, %ymm3, %ymm3
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm3, %ymm8, %ymm3
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm3, %ymm3
        vpblendd	$0xaa, %ymm15, %ymm3, %ymm3
        vmovdqu	4992(%rdx), %ymm10
        vmovdqu	5024(%rdx), %ymm12
        vpsubd	%ymm6, %ymm4, %ymm8
        vpaddd	%ymm6, %ymm4, %ymm4
        vpmulld	%ymm13, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm5, %ymm8
        vpaddd	%ymm7, %ymm5, %ymm5
        vpmulld	%ymm13, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm11, %ymm8, %ymm8
        vpmuldq	%ymm11, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        # 128: 1/4
        vpsubd	%ymm4, %ymm0, %ymm8
        vpaddd	%ymm4, %ymm0, %ymm0
        vpmulld	%ymm12, %ymm8, %ymm4
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm4, %ymm15
        vpmuldq	%ymm14, %ymm4, %ymm4
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm4, %ymm8, %ymm4
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm4, %ymm4
        vpblendd	$0xaa, %ymm15, %ymm4, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm8
        vpaddd	%ymm5, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm8, %ymm5
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm5, %ymm15
        vpmuldq	%ymm14, %ymm5, %ymm5
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm5, %ymm8, %ymm5
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm5, %ymm5
        vpblendd	$0xaa, %ymm15, %ymm5, %ymm5
        vmovdqu	5056(%rdx), %ymm11
        vmovdqu	5088(%rdx), %ymm13
        vpsubd	%ymm6, %ymm2, %ymm8
        vpaddd	%ymm6, %ymm2, %ymm2
        vpmulld	%ymm12, %ymm8, %ymm6
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm6, %ymm15
        vpmuldq	%ymm14, %ymm6, %ymm6
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm6, %ymm8, %ymm6
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm6, %ymm6
        vpblendd	$0xaa, %ymm15, %ymm6, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm8
        vpaddd	%ymm7, %ymm3, %ymm3
        vpmulld	%ymm12, %ymm8, %ymm7
        vmovshdup	%ymm8, %ymm9
        vpmuldq	%ymm10, %ymm8, %ymm8
        vpmuldq	%ymm10, %ymm9, %ymm9
        vmovshdup	%ymm7, %ymm15
        vpmuldq	%ymm14, %ymm7, %ymm7
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm7, %ymm8, %ymm7
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm7, %ymm7
        vpblendd	$0xaa, %ymm15, %ymm7, %ymm7
        vpmulld	%ymm13, %ymm0, %ymm8
        vpmulld	%ymm13, %ymm1, %ymm10
        vmovshdup	%ymm0, %ymm9
        vmovshdup	%ymm1, %ymm12
        vpmuldq	%ymm11, %ymm0, %ymm0
        vpmuldq	%ymm11, %ymm1, %ymm1
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm0, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm1, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm0
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm1
        vpmulld	%ymm13, %ymm2, %ymm8
        vpmulld	%ymm13, %ymm3, %ymm10
        vmovshdup	%ymm2, %ymm9
        vmovshdup	%ymm3, %ymm12
        vpmuldq	%ymm11, %ymm2, %ymm2
        vpmuldq	%ymm11, %ymm3, %ymm3
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm2, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm3, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm2
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm3
        vpmulld	%ymm13, %ymm4, %ymm8
        vpmulld	%ymm13, %ymm5, %ymm10
        vmovshdup	%ymm4, %ymm9
        vmovshdup	%ymm5, %ymm12
        vpmuldq	%ymm11, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm4, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm5, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm4
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm5
        vpmulld	%ymm13, %ymm6, %ymm8
        vpmulld	%ymm13, %ymm7, %ymm10
        vmovshdup	%ymm6, %ymm9
        vmovshdup	%ymm7, %ymm12
        vpmuldq	%ymm11, %ymm6, %ymm6
        vpmuldq	%ymm11, %ymm7, %ymm7
        vpmuldq	%ymm11, %ymm9, %ymm9
        vpmuldq	%ymm11, %ymm12, %ymm12
        vmovshdup	%ymm8, %ymm15
        vpmuldq	%ymm14, %ymm8, %ymm8
        vpmuldq	%ymm14, %ymm15, %ymm15
        vpsubq	%ymm8, %ymm6, %ymm8
        vpsubq	%ymm15, %ymm9, %ymm15
        vmovshdup	%ymm10, %ymm9
        vpmuldq	%ymm14, %ymm10, %ymm10
        vpmuldq	%ymm14, %ymm9, %ymm9
        vpsubq	%ymm10, %ymm7, %ymm10
        vpsubq	%ymm9, %ymm12, %ymm9
        vmovshdup	%ymm8, %ymm8
        vmovshdup	%ymm10, %ymm10
        vpblendd	$0xaa, %ymm15, %ymm8, %ymm6
        vpblendd	$0xaa, %ymm9, %ymm10, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 128(%rdi)
        vmovdqu	%ymm2, 256(%rdi)
        vmovdqu	%ymm3, 384(%rdi)
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 640(%rdi)
        vmovdqu	%ymm6, 768(%rdi)
        vmovdqu	%ymm7, 896(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_invntt_full_avx2,.-wc_mldsa_invntt_full_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_mul_avx2
.type	wc_mldsa_mul_avx2,@function
.align	16
wc_mldsa_mul_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_mul_avx2
.p2align	4
_wc_mldsa_mul_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	mldsa_q(%rip), %ymm8
        vmovdqu	mldsa_qinv(%rip), %ymm9
        # 0..15
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm2
        vmovdqu	(%rdx), %ymm4
        vmovdqu	32(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm2, 32(%rdi)
        # 16..31
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	96(%rsi), %ymm2
        vmovdqu	64(%rdx), %ymm4
        vmovdqu	96(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm2, 96(%rdi)
        # 32..47
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm2
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm2, 160(%rdi)
        # 48..63
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	224(%rsi), %ymm2
        vmovdqu	192(%rdx), %ymm4
        vmovdqu	224(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 192(%rdi)
        vmovdqu	%ymm2, 224(%rdi)
        # 64..79
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm2
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        # 80..95
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	352(%rsi), %ymm2
        vmovdqu	320(%rdx), %ymm4
        vmovdqu	352(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 320(%rdi)
        vmovdqu	%ymm2, 352(%rdi)
        # 96..111
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	416(%rsi), %ymm2
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm2, 416(%rdi)
        # 112..127
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	480(%rsi), %ymm2
        vmovdqu	448(%rdx), %ymm4
        vmovdqu	480(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 448(%rdi)
        vmovdqu	%ymm2, 480(%rdi)
        # 128..143
        vmovdqu	512(%rsi), %ymm0
        vmovdqu	544(%rsi), %ymm2
        vmovdqu	512(%rdx), %ymm4
        vmovdqu	544(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm2, 544(%rdi)
        # 144..159
        vmovdqu	576(%rsi), %ymm0
        vmovdqu	608(%rsi), %ymm2
        vmovdqu	576(%rdx), %ymm4
        vmovdqu	608(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 576(%rdi)
        vmovdqu	%ymm2, 608(%rdi)
        # 160..175
        vmovdqu	640(%rsi), %ymm0
        vmovdqu	672(%rsi), %ymm2
        vmovdqu	640(%rdx), %ymm4
        vmovdqu	672(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 640(%rdi)
        vmovdqu	%ymm2, 672(%rdi)
        # 176..191
        vmovdqu	704(%rsi), %ymm0
        vmovdqu	736(%rsi), %ymm2
        vmovdqu	704(%rdx), %ymm4
        vmovdqu	736(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 704(%rdi)
        vmovdqu	%ymm2, 736(%rdi)
        # 192..207
        vmovdqu	768(%rsi), %ymm0
        vmovdqu	800(%rsi), %ymm2
        vmovdqu	768(%rdx), %ymm4
        vmovdqu	800(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm2, 800(%rdi)
        # 208..223
        vmovdqu	832(%rsi), %ymm0
        vmovdqu	864(%rsi), %ymm2
        vmovdqu	832(%rdx), %ymm4
        vmovdqu	864(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 832(%rdi)
        vmovdqu	%ymm2, 864(%rdi)
        # 224..239
        vmovdqu	896(%rsi), %ymm0
        vmovdqu	928(%rsi), %ymm2
        vmovdqu	896(%rdx), %ymm4
        vmovdqu	928(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 896(%rdi)
        vmovdqu	%ymm2, 928(%rdi)
        # 240..255
        vmovdqu	960(%rsi), %ymm0
        vmovdqu	992(%rsi), %ymm2
        vmovdqu	960(%rdx), %ymm4
        vmovdqu	992(%rdx), %ymm6
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpmuldq	%ymm4, %ymm0, %ymm0
        vpmuldq	%ymm5, %ymm1, %ymm1
        vpmuldq	%ymm6, %ymm2, %ymm2
        vpmuldq	%ymm7, %ymm3, %ymm3
        # Mont Reduce 2
        vpmulld	%ymm9, %ymm0, %ymm4
        vpmulld	%ymm9, %ymm1, %ymm5
        vpmulld	%ymm9, %ymm2, %ymm6
        vpmulld	%ymm9, %ymm3, %ymm7
        vpmuldq	%ymm8, %ymm4, %ymm4
        vpmuldq	%ymm8, %ymm5, %ymm5
        vpmuldq	%ymm8, %ymm6, %ymm6
        vpmuldq	%ymm8, %ymm7, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm0
        vpsubd	%ymm5, %ymm1, %ymm1
        vpsubd	%ymm6, %ymm2, %ymm2
        vpsubd	%ymm7, %ymm3, %ymm3
        vpsrlq	$32, %ymm0, %ymm0
        vpsrlq	$32, %ymm2, %ymm2
        vpor	%ymm1, %ymm0, %ymm0
        vpor	%ymm3, %ymm2, %ymm2
        vmovdqu	%ymm0, 960(%rdi)
        vmovdqu	%ymm2, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_mul_avx2,.-wc_mldsa_mul_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_mul_vec_4_avx2
.type	wc_mldsa_mul_vec_4_avx2,@function
.align	16
wc_mldsa_mul_vec_4_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_mul_vec_4_avx2
.p2align	4
_wc_mldsa_mul_vec_4_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm12, %ymm12, %ymm12
        vmovdqu	mldsa_q(%rip), %ymm12
        vmovdqu	mldsa_qinv(%rip), %ymm13
        # 0..7
        vmovdqu	(%rsi), %ymm0
        vmovdqu	1024(%rsi), %ymm2
        vmovdqu	(%rdx), %ymm6
        vmovdqu	1024(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2048(%rsi), %ymm2
        vmovdqu	3072(%rsi), %ymm4
        vmovdqu	2048(%rdx), %ymm8
        vmovdqu	3072(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rdi)
        # 8..15
        vmovdqu	32(%rsi), %ymm0
        vmovdqu	1056(%rsi), %ymm2
        vmovdqu	32(%rdx), %ymm6
        vmovdqu	1056(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2080(%rsi), %ymm2
        vmovdqu	3104(%rsi), %ymm4
        vmovdqu	2080(%rdx), %ymm8
        vmovdqu	3104(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rdi)
        # 16..23
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	1088(%rsi), %ymm2
        vmovdqu	64(%rdx), %ymm6
        vmovdqu	1088(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2112(%rsi), %ymm2
        vmovdqu	3136(%rsi), %ymm4
        vmovdqu	2112(%rdx), %ymm8
        vmovdqu	3136(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rdi)
        # 24..31
        vmovdqu	96(%rsi), %ymm0
        vmovdqu	1120(%rsi), %ymm2
        vmovdqu	96(%rdx), %ymm6
        vmovdqu	1120(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2144(%rsi), %ymm2
        vmovdqu	3168(%rsi), %ymm4
        vmovdqu	2144(%rdx), %ymm8
        vmovdqu	3168(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rdi)
        # 32..39
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	1152(%rsi), %ymm2
        vmovdqu	128(%rdx), %ymm6
        vmovdqu	1152(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2176(%rsi), %ymm2
        vmovdqu	3200(%rsi), %ymm4
        vmovdqu	2176(%rdx), %ymm8
        vmovdqu	3200(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 128(%rdi)
        # 40..47
        vmovdqu	160(%rsi), %ymm0
        vmovdqu	1184(%rsi), %ymm2
        vmovdqu	160(%rdx), %ymm6
        vmovdqu	1184(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2208(%rsi), %ymm2
        vmovdqu	3232(%rsi), %ymm4
        vmovdqu	2208(%rdx), %ymm8
        vmovdqu	3232(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 160(%rdi)
        # 48..55
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	1216(%rsi), %ymm2
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	1216(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2240(%rsi), %ymm2
        vmovdqu	3264(%rsi), %ymm4
        vmovdqu	2240(%rdx), %ymm8
        vmovdqu	3264(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 192(%rdi)
        # 56..63
        vmovdqu	224(%rsi), %ymm0
        vmovdqu	1248(%rsi), %ymm2
        vmovdqu	224(%rdx), %ymm6
        vmovdqu	1248(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2272(%rsi), %ymm2
        vmovdqu	3296(%rsi), %ymm4
        vmovdqu	2272(%rdx), %ymm8
        vmovdqu	3296(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 224(%rdi)
        # 64..71
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	1280(%rsi), %ymm2
        vmovdqu	256(%rdx), %ymm6
        vmovdqu	1280(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2304(%rsi), %ymm2
        vmovdqu	3328(%rsi), %ymm4
        vmovdqu	2304(%rdx), %ymm8
        vmovdqu	3328(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 256(%rdi)
        # 72..79
        vmovdqu	288(%rsi), %ymm0
        vmovdqu	1312(%rsi), %ymm2
        vmovdqu	288(%rdx), %ymm6
        vmovdqu	1312(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2336(%rsi), %ymm2
        vmovdqu	3360(%rsi), %ymm4
        vmovdqu	2336(%rdx), %ymm8
        vmovdqu	3360(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 288(%rdi)
        # 80..87
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	1344(%rsi), %ymm2
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	1344(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2368(%rsi), %ymm2
        vmovdqu	3392(%rsi), %ymm4
        vmovdqu	2368(%rdx), %ymm8
        vmovdqu	3392(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 320(%rdi)
        # 88..95
        vmovdqu	352(%rsi), %ymm0
        vmovdqu	1376(%rsi), %ymm2
        vmovdqu	352(%rdx), %ymm6
        vmovdqu	1376(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2400(%rsi), %ymm2
        vmovdqu	3424(%rsi), %ymm4
        vmovdqu	2400(%rdx), %ymm8
        vmovdqu	3424(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 352(%rdi)
        # 96..103
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	1408(%rsi), %ymm2
        vmovdqu	384(%rdx), %ymm6
        vmovdqu	1408(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2432(%rsi), %ymm2
        vmovdqu	3456(%rsi), %ymm4
        vmovdqu	2432(%rdx), %ymm8
        vmovdqu	3456(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 384(%rdi)
        # 104..111
        vmovdqu	416(%rsi), %ymm0
        vmovdqu	1440(%rsi), %ymm2
        vmovdqu	416(%rdx), %ymm6
        vmovdqu	1440(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2464(%rsi), %ymm2
        vmovdqu	3488(%rsi), %ymm4
        vmovdqu	2464(%rdx), %ymm8
        vmovdqu	3488(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 416(%rdi)
        # 112..119
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	1472(%rsi), %ymm2
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	1472(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2496(%rsi), %ymm2
        vmovdqu	3520(%rsi), %ymm4
        vmovdqu	2496(%rdx), %ymm8
        vmovdqu	3520(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 448(%rdi)
        # 120..127
        vmovdqu	480(%rsi), %ymm0
        vmovdqu	1504(%rsi), %ymm2
        vmovdqu	480(%rdx), %ymm6
        vmovdqu	1504(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2528(%rsi), %ymm2
        vmovdqu	3552(%rsi), %ymm4
        vmovdqu	2528(%rdx), %ymm8
        vmovdqu	3552(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 480(%rdi)
        # 128..135
        vmovdqu	512(%rsi), %ymm0
        vmovdqu	1536(%rsi), %ymm2
        vmovdqu	512(%rdx), %ymm6
        vmovdqu	1536(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2560(%rsi), %ymm2
        vmovdqu	3584(%rsi), %ymm4
        vmovdqu	2560(%rdx), %ymm8
        vmovdqu	3584(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 512(%rdi)
        # 136..143
        vmovdqu	544(%rsi), %ymm0
        vmovdqu	1568(%rsi), %ymm2
        vmovdqu	544(%rdx), %ymm6
        vmovdqu	1568(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2592(%rsi), %ymm2
        vmovdqu	3616(%rsi), %ymm4
        vmovdqu	2592(%rdx), %ymm8
        vmovdqu	3616(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 544(%rdi)
        # 144..151
        vmovdqu	576(%rsi), %ymm0
        vmovdqu	1600(%rsi), %ymm2
        vmovdqu	576(%rdx), %ymm6
        vmovdqu	1600(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2624(%rsi), %ymm2
        vmovdqu	3648(%rsi), %ymm4
        vmovdqu	2624(%rdx), %ymm8
        vmovdqu	3648(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 576(%rdi)
        # 152..159
        vmovdqu	608(%rsi), %ymm0
        vmovdqu	1632(%rsi), %ymm2
        vmovdqu	608(%rdx), %ymm6
        vmovdqu	1632(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2656(%rsi), %ymm2
        vmovdqu	3680(%rsi), %ymm4
        vmovdqu	2656(%rdx), %ymm8
        vmovdqu	3680(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 608(%rdi)
        # 160..167
        vmovdqu	640(%rsi), %ymm0
        vmovdqu	1664(%rsi), %ymm2
        vmovdqu	640(%rdx), %ymm6
        vmovdqu	1664(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2688(%rsi), %ymm2
        vmovdqu	3712(%rsi), %ymm4
        vmovdqu	2688(%rdx), %ymm8
        vmovdqu	3712(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 640(%rdi)
        # 168..175
        vmovdqu	672(%rsi), %ymm0
        vmovdqu	1696(%rsi), %ymm2
        vmovdqu	672(%rdx), %ymm6
        vmovdqu	1696(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2720(%rsi), %ymm2
        vmovdqu	3744(%rsi), %ymm4
        vmovdqu	2720(%rdx), %ymm8
        vmovdqu	3744(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 672(%rdi)
        # 176..183
        vmovdqu	704(%rsi), %ymm0
        vmovdqu	1728(%rsi), %ymm2
        vmovdqu	704(%rdx), %ymm6
        vmovdqu	1728(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2752(%rsi), %ymm2
        vmovdqu	3776(%rsi), %ymm4
        vmovdqu	2752(%rdx), %ymm8
        vmovdqu	3776(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 704(%rdi)
        # 184..191
        vmovdqu	736(%rsi), %ymm0
        vmovdqu	1760(%rsi), %ymm2
        vmovdqu	736(%rdx), %ymm6
        vmovdqu	1760(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2784(%rsi), %ymm2
        vmovdqu	3808(%rsi), %ymm4
        vmovdqu	2784(%rdx), %ymm8
        vmovdqu	3808(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 736(%rdi)
        # 192..199
        vmovdqu	768(%rsi), %ymm0
        vmovdqu	1792(%rsi), %ymm2
        vmovdqu	768(%rdx), %ymm6
        vmovdqu	1792(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2816(%rsi), %ymm2
        vmovdqu	3840(%rsi), %ymm4
        vmovdqu	2816(%rdx), %ymm8
        vmovdqu	3840(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 768(%rdi)
        # 200..207
        vmovdqu	800(%rsi), %ymm0
        vmovdqu	1824(%rsi), %ymm2
        vmovdqu	800(%rdx), %ymm6
        vmovdqu	1824(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2848(%rsi), %ymm2
        vmovdqu	3872(%rsi), %ymm4
        vmovdqu	2848(%rdx), %ymm8
        vmovdqu	3872(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 800(%rdi)
        # 208..215
        vmovdqu	832(%rsi), %ymm0
        vmovdqu	1856(%rsi), %ymm2
        vmovdqu	832(%rdx), %ymm6
        vmovdqu	1856(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2880(%rsi), %ymm2
        vmovdqu	3904(%rsi), %ymm4
        vmovdqu	2880(%rdx), %ymm8
        vmovdqu	3904(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 832(%rdi)
        # 216..223
        vmovdqu	864(%rsi), %ymm0
        vmovdqu	1888(%rsi), %ymm2
        vmovdqu	864(%rdx), %ymm6
        vmovdqu	1888(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2912(%rsi), %ymm2
        vmovdqu	3936(%rsi), %ymm4
        vmovdqu	2912(%rdx), %ymm8
        vmovdqu	3936(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 864(%rdi)
        # 224..231
        vmovdqu	896(%rsi), %ymm0
        vmovdqu	1920(%rsi), %ymm2
        vmovdqu	896(%rdx), %ymm6
        vmovdqu	1920(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2944(%rsi), %ymm2
        vmovdqu	3968(%rsi), %ymm4
        vmovdqu	2944(%rdx), %ymm8
        vmovdqu	3968(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 896(%rdi)
        # 232..239
        vmovdqu	928(%rsi), %ymm0
        vmovdqu	1952(%rsi), %ymm2
        vmovdqu	928(%rdx), %ymm6
        vmovdqu	1952(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	2976(%rsi), %ymm2
        vmovdqu	4000(%rsi), %ymm4
        vmovdqu	2976(%rdx), %ymm8
        vmovdqu	4000(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 928(%rdi)
        # 240..247
        vmovdqu	960(%rsi), %ymm0
        vmovdqu	1984(%rsi), %ymm2
        vmovdqu	960(%rdx), %ymm6
        vmovdqu	1984(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	3008(%rsi), %ymm2
        vmovdqu	4032(%rsi), %ymm4
        vmovdqu	3008(%rdx), %ymm8
        vmovdqu	4032(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 960(%rdi)
        # 248..255
        vmovdqu	992(%rsi), %ymm0
        vmovdqu	2016(%rsi), %ymm2
        vmovdqu	992(%rdx), %ymm6
        vmovdqu	2016(%rdx), %ymm8
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vmovdqu	3040(%rsi), %ymm2
        vmovdqu	4064(%rsi), %ymm4
        vmovdqu	3040(%rdx), %ymm8
        vmovdqu	4064(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_mul_vec_4_avx2,.-wc_mldsa_mul_vec_4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_mul_vec_5_avx2
.type	wc_mldsa_mul_vec_5_avx2,@function
.align	16
wc_mldsa_mul_vec_5_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_mul_vec_5_avx2
.p2align	4
_wc_mldsa_mul_vec_5_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm12, %ymm12, %ymm12
        vmovdqu	mldsa_q(%rip), %ymm12
        vmovdqu	mldsa_qinv(%rip), %ymm13
        # 0..7
        vmovdqu	(%rsi), %ymm0
        vmovdqu	1024(%rsi), %ymm2
        vmovdqu	2048(%rsi), %ymm4
        vmovdqu	(%rdx), %ymm6
        vmovdqu	1024(%rdx), %ymm8
        vmovdqu	2048(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3072(%rsi), %ymm2
        vmovdqu	4096(%rsi), %ymm4
        vmovdqu	3072(%rdx), %ymm8
        vmovdqu	4096(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rdi)
        # 8..15
        vmovdqu	32(%rsi), %ymm0
        vmovdqu	1056(%rsi), %ymm2
        vmovdqu	2080(%rsi), %ymm4
        vmovdqu	32(%rdx), %ymm6
        vmovdqu	1056(%rdx), %ymm8
        vmovdqu	2080(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3104(%rsi), %ymm2
        vmovdqu	4128(%rsi), %ymm4
        vmovdqu	3104(%rdx), %ymm8
        vmovdqu	4128(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rdi)
        # 16..23
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	1088(%rsi), %ymm2
        vmovdqu	2112(%rsi), %ymm4
        vmovdqu	64(%rdx), %ymm6
        vmovdqu	1088(%rdx), %ymm8
        vmovdqu	2112(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3136(%rsi), %ymm2
        vmovdqu	4160(%rsi), %ymm4
        vmovdqu	3136(%rdx), %ymm8
        vmovdqu	4160(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rdi)
        # 24..31
        vmovdqu	96(%rsi), %ymm0
        vmovdqu	1120(%rsi), %ymm2
        vmovdqu	2144(%rsi), %ymm4
        vmovdqu	96(%rdx), %ymm6
        vmovdqu	1120(%rdx), %ymm8
        vmovdqu	2144(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3168(%rsi), %ymm2
        vmovdqu	4192(%rsi), %ymm4
        vmovdqu	3168(%rdx), %ymm8
        vmovdqu	4192(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rdi)
        # 32..39
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	1152(%rsi), %ymm2
        vmovdqu	2176(%rsi), %ymm4
        vmovdqu	128(%rdx), %ymm6
        vmovdqu	1152(%rdx), %ymm8
        vmovdqu	2176(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3200(%rsi), %ymm2
        vmovdqu	4224(%rsi), %ymm4
        vmovdqu	3200(%rdx), %ymm8
        vmovdqu	4224(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 128(%rdi)
        # 40..47
        vmovdqu	160(%rsi), %ymm0
        vmovdqu	1184(%rsi), %ymm2
        vmovdqu	2208(%rsi), %ymm4
        vmovdqu	160(%rdx), %ymm6
        vmovdqu	1184(%rdx), %ymm8
        vmovdqu	2208(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3232(%rsi), %ymm2
        vmovdqu	4256(%rsi), %ymm4
        vmovdqu	3232(%rdx), %ymm8
        vmovdqu	4256(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 160(%rdi)
        # 48..55
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	1216(%rsi), %ymm2
        vmovdqu	2240(%rsi), %ymm4
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	1216(%rdx), %ymm8
        vmovdqu	2240(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3264(%rsi), %ymm2
        vmovdqu	4288(%rsi), %ymm4
        vmovdqu	3264(%rdx), %ymm8
        vmovdqu	4288(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 192(%rdi)
        # 56..63
        vmovdqu	224(%rsi), %ymm0
        vmovdqu	1248(%rsi), %ymm2
        vmovdqu	2272(%rsi), %ymm4
        vmovdqu	224(%rdx), %ymm6
        vmovdqu	1248(%rdx), %ymm8
        vmovdqu	2272(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3296(%rsi), %ymm2
        vmovdqu	4320(%rsi), %ymm4
        vmovdqu	3296(%rdx), %ymm8
        vmovdqu	4320(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 224(%rdi)
        # 64..71
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	1280(%rsi), %ymm2
        vmovdqu	2304(%rsi), %ymm4
        vmovdqu	256(%rdx), %ymm6
        vmovdqu	1280(%rdx), %ymm8
        vmovdqu	2304(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3328(%rsi), %ymm2
        vmovdqu	4352(%rsi), %ymm4
        vmovdqu	3328(%rdx), %ymm8
        vmovdqu	4352(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 256(%rdi)
        # 72..79
        vmovdqu	288(%rsi), %ymm0
        vmovdqu	1312(%rsi), %ymm2
        vmovdqu	2336(%rsi), %ymm4
        vmovdqu	288(%rdx), %ymm6
        vmovdqu	1312(%rdx), %ymm8
        vmovdqu	2336(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3360(%rsi), %ymm2
        vmovdqu	4384(%rsi), %ymm4
        vmovdqu	3360(%rdx), %ymm8
        vmovdqu	4384(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 288(%rdi)
        # 80..87
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	1344(%rsi), %ymm2
        vmovdqu	2368(%rsi), %ymm4
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	1344(%rdx), %ymm8
        vmovdqu	2368(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3392(%rsi), %ymm2
        vmovdqu	4416(%rsi), %ymm4
        vmovdqu	3392(%rdx), %ymm8
        vmovdqu	4416(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 320(%rdi)
        # 88..95
        vmovdqu	352(%rsi), %ymm0
        vmovdqu	1376(%rsi), %ymm2
        vmovdqu	2400(%rsi), %ymm4
        vmovdqu	352(%rdx), %ymm6
        vmovdqu	1376(%rdx), %ymm8
        vmovdqu	2400(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3424(%rsi), %ymm2
        vmovdqu	4448(%rsi), %ymm4
        vmovdqu	3424(%rdx), %ymm8
        vmovdqu	4448(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 352(%rdi)
        # 96..103
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	1408(%rsi), %ymm2
        vmovdqu	2432(%rsi), %ymm4
        vmovdqu	384(%rdx), %ymm6
        vmovdqu	1408(%rdx), %ymm8
        vmovdqu	2432(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3456(%rsi), %ymm2
        vmovdqu	4480(%rsi), %ymm4
        vmovdqu	3456(%rdx), %ymm8
        vmovdqu	4480(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 384(%rdi)
        # 104..111
        vmovdqu	416(%rsi), %ymm0
        vmovdqu	1440(%rsi), %ymm2
        vmovdqu	2464(%rsi), %ymm4
        vmovdqu	416(%rdx), %ymm6
        vmovdqu	1440(%rdx), %ymm8
        vmovdqu	2464(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3488(%rsi), %ymm2
        vmovdqu	4512(%rsi), %ymm4
        vmovdqu	3488(%rdx), %ymm8
        vmovdqu	4512(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 416(%rdi)
        # 112..119
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	1472(%rsi), %ymm2
        vmovdqu	2496(%rsi), %ymm4
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	1472(%rdx), %ymm8
        vmovdqu	2496(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3520(%rsi), %ymm2
        vmovdqu	4544(%rsi), %ymm4
        vmovdqu	3520(%rdx), %ymm8
        vmovdqu	4544(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 448(%rdi)
        # 120..127
        vmovdqu	480(%rsi), %ymm0
        vmovdqu	1504(%rsi), %ymm2
        vmovdqu	2528(%rsi), %ymm4
        vmovdqu	480(%rdx), %ymm6
        vmovdqu	1504(%rdx), %ymm8
        vmovdqu	2528(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3552(%rsi), %ymm2
        vmovdqu	4576(%rsi), %ymm4
        vmovdqu	3552(%rdx), %ymm8
        vmovdqu	4576(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 480(%rdi)
        # 128..135
        vmovdqu	512(%rsi), %ymm0
        vmovdqu	1536(%rsi), %ymm2
        vmovdqu	2560(%rsi), %ymm4
        vmovdqu	512(%rdx), %ymm6
        vmovdqu	1536(%rdx), %ymm8
        vmovdqu	2560(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3584(%rsi), %ymm2
        vmovdqu	4608(%rsi), %ymm4
        vmovdqu	3584(%rdx), %ymm8
        vmovdqu	4608(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 512(%rdi)
        # 136..143
        vmovdqu	544(%rsi), %ymm0
        vmovdqu	1568(%rsi), %ymm2
        vmovdqu	2592(%rsi), %ymm4
        vmovdqu	544(%rdx), %ymm6
        vmovdqu	1568(%rdx), %ymm8
        vmovdqu	2592(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3616(%rsi), %ymm2
        vmovdqu	4640(%rsi), %ymm4
        vmovdqu	3616(%rdx), %ymm8
        vmovdqu	4640(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 544(%rdi)
        # 144..151
        vmovdqu	576(%rsi), %ymm0
        vmovdqu	1600(%rsi), %ymm2
        vmovdqu	2624(%rsi), %ymm4
        vmovdqu	576(%rdx), %ymm6
        vmovdqu	1600(%rdx), %ymm8
        vmovdqu	2624(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3648(%rsi), %ymm2
        vmovdqu	4672(%rsi), %ymm4
        vmovdqu	3648(%rdx), %ymm8
        vmovdqu	4672(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 576(%rdi)
        # 152..159
        vmovdqu	608(%rsi), %ymm0
        vmovdqu	1632(%rsi), %ymm2
        vmovdqu	2656(%rsi), %ymm4
        vmovdqu	608(%rdx), %ymm6
        vmovdqu	1632(%rdx), %ymm8
        vmovdqu	2656(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3680(%rsi), %ymm2
        vmovdqu	4704(%rsi), %ymm4
        vmovdqu	3680(%rdx), %ymm8
        vmovdqu	4704(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 608(%rdi)
        # 160..167
        vmovdqu	640(%rsi), %ymm0
        vmovdqu	1664(%rsi), %ymm2
        vmovdqu	2688(%rsi), %ymm4
        vmovdqu	640(%rdx), %ymm6
        vmovdqu	1664(%rdx), %ymm8
        vmovdqu	2688(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3712(%rsi), %ymm2
        vmovdqu	4736(%rsi), %ymm4
        vmovdqu	3712(%rdx), %ymm8
        vmovdqu	4736(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 640(%rdi)
        # 168..175
        vmovdqu	672(%rsi), %ymm0
        vmovdqu	1696(%rsi), %ymm2
        vmovdqu	2720(%rsi), %ymm4
        vmovdqu	672(%rdx), %ymm6
        vmovdqu	1696(%rdx), %ymm8
        vmovdqu	2720(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3744(%rsi), %ymm2
        vmovdqu	4768(%rsi), %ymm4
        vmovdqu	3744(%rdx), %ymm8
        vmovdqu	4768(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 672(%rdi)
        # 176..183
        vmovdqu	704(%rsi), %ymm0
        vmovdqu	1728(%rsi), %ymm2
        vmovdqu	2752(%rsi), %ymm4
        vmovdqu	704(%rdx), %ymm6
        vmovdqu	1728(%rdx), %ymm8
        vmovdqu	2752(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3776(%rsi), %ymm2
        vmovdqu	4800(%rsi), %ymm4
        vmovdqu	3776(%rdx), %ymm8
        vmovdqu	4800(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 704(%rdi)
        # 184..191
        vmovdqu	736(%rsi), %ymm0
        vmovdqu	1760(%rsi), %ymm2
        vmovdqu	2784(%rsi), %ymm4
        vmovdqu	736(%rdx), %ymm6
        vmovdqu	1760(%rdx), %ymm8
        vmovdqu	2784(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3808(%rsi), %ymm2
        vmovdqu	4832(%rsi), %ymm4
        vmovdqu	3808(%rdx), %ymm8
        vmovdqu	4832(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 736(%rdi)
        # 192..199
        vmovdqu	768(%rsi), %ymm0
        vmovdqu	1792(%rsi), %ymm2
        vmovdqu	2816(%rsi), %ymm4
        vmovdqu	768(%rdx), %ymm6
        vmovdqu	1792(%rdx), %ymm8
        vmovdqu	2816(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3840(%rsi), %ymm2
        vmovdqu	4864(%rsi), %ymm4
        vmovdqu	3840(%rdx), %ymm8
        vmovdqu	4864(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 768(%rdi)
        # 200..207
        vmovdqu	800(%rsi), %ymm0
        vmovdqu	1824(%rsi), %ymm2
        vmovdqu	2848(%rsi), %ymm4
        vmovdqu	800(%rdx), %ymm6
        vmovdqu	1824(%rdx), %ymm8
        vmovdqu	2848(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3872(%rsi), %ymm2
        vmovdqu	4896(%rsi), %ymm4
        vmovdqu	3872(%rdx), %ymm8
        vmovdqu	4896(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 800(%rdi)
        # 208..215
        vmovdqu	832(%rsi), %ymm0
        vmovdqu	1856(%rsi), %ymm2
        vmovdqu	2880(%rsi), %ymm4
        vmovdqu	832(%rdx), %ymm6
        vmovdqu	1856(%rdx), %ymm8
        vmovdqu	2880(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3904(%rsi), %ymm2
        vmovdqu	4928(%rsi), %ymm4
        vmovdqu	3904(%rdx), %ymm8
        vmovdqu	4928(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 832(%rdi)
        # 216..223
        vmovdqu	864(%rsi), %ymm0
        vmovdqu	1888(%rsi), %ymm2
        vmovdqu	2912(%rsi), %ymm4
        vmovdqu	864(%rdx), %ymm6
        vmovdqu	1888(%rdx), %ymm8
        vmovdqu	2912(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3936(%rsi), %ymm2
        vmovdqu	4960(%rsi), %ymm4
        vmovdqu	3936(%rdx), %ymm8
        vmovdqu	4960(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 864(%rdi)
        # 224..231
        vmovdqu	896(%rsi), %ymm0
        vmovdqu	1920(%rsi), %ymm2
        vmovdqu	2944(%rsi), %ymm4
        vmovdqu	896(%rdx), %ymm6
        vmovdqu	1920(%rdx), %ymm8
        vmovdqu	2944(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3968(%rsi), %ymm2
        vmovdqu	4992(%rsi), %ymm4
        vmovdqu	3968(%rdx), %ymm8
        vmovdqu	4992(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 896(%rdi)
        # 232..239
        vmovdqu	928(%rsi), %ymm0
        vmovdqu	1952(%rsi), %ymm2
        vmovdqu	2976(%rsi), %ymm4
        vmovdqu	928(%rdx), %ymm6
        vmovdqu	1952(%rdx), %ymm8
        vmovdqu	2976(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4000(%rsi), %ymm2
        vmovdqu	5024(%rsi), %ymm4
        vmovdqu	4000(%rdx), %ymm8
        vmovdqu	5024(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 928(%rdi)
        # 240..247
        vmovdqu	960(%rsi), %ymm0
        vmovdqu	1984(%rsi), %ymm2
        vmovdqu	3008(%rsi), %ymm4
        vmovdqu	960(%rdx), %ymm6
        vmovdqu	1984(%rdx), %ymm8
        vmovdqu	3008(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4032(%rsi), %ymm2
        vmovdqu	5056(%rsi), %ymm4
        vmovdqu	4032(%rdx), %ymm8
        vmovdqu	5056(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 960(%rdi)
        # 248..255
        vmovdqu	992(%rsi), %ymm0
        vmovdqu	2016(%rsi), %ymm2
        vmovdqu	3040(%rsi), %ymm4
        vmovdqu	992(%rdx), %ymm6
        vmovdqu	2016(%rdx), %ymm8
        vmovdqu	3040(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4064(%rsi), %ymm2
        vmovdqu	5088(%rsi), %ymm4
        vmovdqu	4064(%rdx), %ymm8
        vmovdqu	5088(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_mul_vec_5_avx2,.-wc_mldsa_mul_vec_5_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_mul_vec_7_avx2
.type	wc_mldsa_mul_vec_7_avx2,@function
.align	16
wc_mldsa_mul_vec_7_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_mul_vec_7_avx2
.p2align	4
_wc_mldsa_mul_vec_7_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm12, %ymm12, %ymm12
        vmovdqu	mldsa_q(%rip), %ymm12
        vmovdqu	mldsa_qinv(%rip), %ymm13
        # 0..7
        vmovdqu	(%rsi), %ymm0
        vmovdqu	1024(%rsi), %ymm2
        vmovdqu	2048(%rsi), %ymm4
        vmovdqu	(%rdx), %ymm6
        vmovdqu	1024(%rdx), %ymm8
        vmovdqu	2048(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3072(%rsi), %ymm2
        vmovdqu	4096(%rsi), %ymm4
        vmovdqu	3072(%rdx), %ymm8
        vmovdqu	4096(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5120(%rsi), %ymm2
        vmovdqu	6144(%rsi), %ymm4
        vmovdqu	5120(%rdx), %ymm8
        vmovdqu	6144(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rdi)
        # 8..15
        vmovdqu	32(%rsi), %ymm0
        vmovdqu	1056(%rsi), %ymm2
        vmovdqu	2080(%rsi), %ymm4
        vmovdqu	32(%rdx), %ymm6
        vmovdqu	1056(%rdx), %ymm8
        vmovdqu	2080(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3104(%rsi), %ymm2
        vmovdqu	4128(%rsi), %ymm4
        vmovdqu	3104(%rdx), %ymm8
        vmovdqu	4128(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5152(%rsi), %ymm2
        vmovdqu	6176(%rsi), %ymm4
        vmovdqu	5152(%rdx), %ymm8
        vmovdqu	6176(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rdi)
        # 16..23
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	1088(%rsi), %ymm2
        vmovdqu	2112(%rsi), %ymm4
        vmovdqu	64(%rdx), %ymm6
        vmovdqu	1088(%rdx), %ymm8
        vmovdqu	2112(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3136(%rsi), %ymm2
        vmovdqu	4160(%rsi), %ymm4
        vmovdqu	3136(%rdx), %ymm8
        vmovdqu	4160(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5184(%rsi), %ymm2
        vmovdqu	6208(%rsi), %ymm4
        vmovdqu	5184(%rdx), %ymm8
        vmovdqu	6208(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rdi)
        # 24..31
        vmovdqu	96(%rsi), %ymm0
        vmovdqu	1120(%rsi), %ymm2
        vmovdqu	2144(%rsi), %ymm4
        vmovdqu	96(%rdx), %ymm6
        vmovdqu	1120(%rdx), %ymm8
        vmovdqu	2144(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3168(%rsi), %ymm2
        vmovdqu	4192(%rsi), %ymm4
        vmovdqu	3168(%rdx), %ymm8
        vmovdqu	4192(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5216(%rsi), %ymm2
        vmovdqu	6240(%rsi), %ymm4
        vmovdqu	5216(%rdx), %ymm8
        vmovdqu	6240(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rdi)
        # 32..39
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	1152(%rsi), %ymm2
        vmovdqu	2176(%rsi), %ymm4
        vmovdqu	128(%rdx), %ymm6
        vmovdqu	1152(%rdx), %ymm8
        vmovdqu	2176(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3200(%rsi), %ymm2
        vmovdqu	4224(%rsi), %ymm4
        vmovdqu	3200(%rdx), %ymm8
        vmovdqu	4224(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5248(%rsi), %ymm2
        vmovdqu	6272(%rsi), %ymm4
        vmovdqu	5248(%rdx), %ymm8
        vmovdqu	6272(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 128(%rdi)
        # 40..47
        vmovdqu	160(%rsi), %ymm0
        vmovdqu	1184(%rsi), %ymm2
        vmovdqu	2208(%rsi), %ymm4
        vmovdqu	160(%rdx), %ymm6
        vmovdqu	1184(%rdx), %ymm8
        vmovdqu	2208(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3232(%rsi), %ymm2
        vmovdqu	4256(%rsi), %ymm4
        vmovdqu	3232(%rdx), %ymm8
        vmovdqu	4256(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5280(%rsi), %ymm2
        vmovdqu	6304(%rsi), %ymm4
        vmovdqu	5280(%rdx), %ymm8
        vmovdqu	6304(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 160(%rdi)
        # 48..55
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	1216(%rsi), %ymm2
        vmovdqu	2240(%rsi), %ymm4
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	1216(%rdx), %ymm8
        vmovdqu	2240(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3264(%rsi), %ymm2
        vmovdqu	4288(%rsi), %ymm4
        vmovdqu	3264(%rdx), %ymm8
        vmovdqu	4288(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5312(%rsi), %ymm2
        vmovdqu	6336(%rsi), %ymm4
        vmovdqu	5312(%rdx), %ymm8
        vmovdqu	6336(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 192(%rdi)
        # 56..63
        vmovdqu	224(%rsi), %ymm0
        vmovdqu	1248(%rsi), %ymm2
        vmovdqu	2272(%rsi), %ymm4
        vmovdqu	224(%rdx), %ymm6
        vmovdqu	1248(%rdx), %ymm8
        vmovdqu	2272(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3296(%rsi), %ymm2
        vmovdqu	4320(%rsi), %ymm4
        vmovdqu	3296(%rdx), %ymm8
        vmovdqu	4320(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5344(%rsi), %ymm2
        vmovdqu	6368(%rsi), %ymm4
        vmovdqu	5344(%rdx), %ymm8
        vmovdqu	6368(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 224(%rdi)
        # 64..71
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	1280(%rsi), %ymm2
        vmovdqu	2304(%rsi), %ymm4
        vmovdqu	256(%rdx), %ymm6
        vmovdqu	1280(%rdx), %ymm8
        vmovdqu	2304(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3328(%rsi), %ymm2
        vmovdqu	4352(%rsi), %ymm4
        vmovdqu	3328(%rdx), %ymm8
        vmovdqu	4352(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5376(%rsi), %ymm2
        vmovdqu	6400(%rsi), %ymm4
        vmovdqu	5376(%rdx), %ymm8
        vmovdqu	6400(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 256(%rdi)
        # 72..79
        vmovdqu	288(%rsi), %ymm0
        vmovdqu	1312(%rsi), %ymm2
        vmovdqu	2336(%rsi), %ymm4
        vmovdqu	288(%rdx), %ymm6
        vmovdqu	1312(%rdx), %ymm8
        vmovdqu	2336(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3360(%rsi), %ymm2
        vmovdqu	4384(%rsi), %ymm4
        vmovdqu	3360(%rdx), %ymm8
        vmovdqu	4384(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5408(%rsi), %ymm2
        vmovdqu	6432(%rsi), %ymm4
        vmovdqu	5408(%rdx), %ymm8
        vmovdqu	6432(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 288(%rdi)
        # 80..87
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	1344(%rsi), %ymm2
        vmovdqu	2368(%rsi), %ymm4
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	1344(%rdx), %ymm8
        vmovdqu	2368(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3392(%rsi), %ymm2
        vmovdqu	4416(%rsi), %ymm4
        vmovdqu	3392(%rdx), %ymm8
        vmovdqu	4416(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5440(%rsi), %ymm2
        vmovdqu	6464(%rsi), %ymm4
        vmovdqu	5440(%rdx), %ymm8
        vmovdqu	6464(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 320(%rdi)
        # 88..95
        vmovdqu	352(%rsi), %ymm0
        vmovdqu	1376(%rsi), %ymm2
        vmovdqu	2400(%rsi), %ymm4
        vmovdqu	352(%rdx), %ymm6
        vmovdqu	1376(%rdx), %ymm8
        vmovdqu	2400(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3424(%rsi), %ymm2
        vmovdqu	4448(%rsi), %ymm4
        vmovdqu	3424(%rdx), %ymm8
        vmovdqu	4448(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5472(%rsi), %ymm2
        vmovdqu	6496(%rsi), %ymm4
        vmovdqu	5472(%rdx), %ymm8
        vmovdqu	6496(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 352(%rdi)
        # 96..103
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	1408(%rsi), %ymm2
        vmovdqu	2432(%rsi), %ymm4
        vmovdqu	384(%rdx), %ymm6
        vmovdqu	1408(%rdx), %ymm8
        vmovdqu	2432(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3456(%rsi), %ymm2
        vmovdqu	4480(%rsi), %ymm4
        vmovdqu	3456(%rdx), %ymm8
        vmovdqu	4480(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5504(%rsi), %ymm2
        vmovdqu	6528(%rsi), %ymm4
        vmovdqu	5504(%rdx), %ymm8
        vmovdqu	6528(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 384(%rdi)
        # 104..111
        vmovdqu	416(%rsi), %ymm0
        vmovdqu	1440(%rsi), %ymm2
        vmovdqu	2464(%rsi), %ymm4
        vmovdqu	416(%rdx), %ymm6
        vmovdqu	1440(%rdx), %ymm8
        vmovdqu	2464(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3488(%rsi), %ymm2
        vmovdqu	4512(%rsi), %ymm4
        vmovdqu	3488(%rdx), %ymm8
        vmovdqu	4512(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5536(%rsi), %ymm2
        vmovdqu	6560(%rsi), %ymm4
        vmovdqu	5536(%rdx), %ymm8
        vmovdqu	6560(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 416(%rdi)
        # 112..119
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	1472(%rsi), %ymm2
        vmovdqu	2496(%rsi), %ymm4
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	1472(%rdx), %ymm8
        vmovdqu	2496(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3520(%rsi), %ymm2
        vmovdqu	4544(%rsi), %ymm4
        vmovdqu	3520(%rdx), %ymm8
        vmovdqu	4544(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5568(%rsi), %ymm2
        vmovdqu	6592(%rsi), %ymm4
        vmovdqu	5568(%rdx), %ymm8
        vmovdqu	6592(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 448(%rdi)
        # 120..127
        vmovdqu	480(%rsi), %ymm0
        vmovdqu	1504(%rsi), %ymm2
        vmovdqu	2528(%rsi), %ymm4
        vmovdqu	480(%rdx), %ymm6
        vmovdqu	1504(%rdx), %ymm8
        vmovdqu	2528(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3552(%rsi), %ymm2
        vmovdqu	4576(%rsi), %ymm4
        vmovdqu	3552(%rdx), %ymm8
        vmovdqu	4576(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5600(%rsi), %ymm2
        vmovdqu	6624(%rsi), %ymm4
        vmovdqu	5600(%rdx), %ymm8
        vmovdqu	6624(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 480(%rdi)
        # 128..135
        vmovdqu	512(%rsi), %ymm0
        vmovdqu	1536(%rsi), %ymm2
        vmovdqu	2560(%rsi), %ymm4
        vmovdqu	512(%rdx), %ymm6
        vmovdqu	1536(%rdx), %ymm8
        vmovdqu	2560(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3584(%rsi), %ymm2
        vmovdqu	4608(%rsi), %ymm4
        vmovdqu	3584(%rdx), %ymm8
        vmovdqu	4608(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5632(%rsi), %ymm2
        vmovdqu	6656(%rsi), %ymm4
        vmovdqu	5632(%rdx), %ymm8
        vmovdqu	6656(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 512(%rdi)
        # 136..143
        vmovdqu	544(%rsi), %ymm0
        vmovdqu	1568(%rsi), %ymm2
        vmovdqu	2592(%rsi), %ymm4
        vmovdqu	544(%rdx), %ymm6
        vmovdqu	1568(%rdx), %ymm8
        vmovdqu	2592(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3616(%rsi), %ymm2
        vmovdqu	4640(%rsi), %ymm4
        vmovdqu	3616(%rdx), %ymm8
        vmovdqu	4640(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5664(%rsi), %ymm2
        vmovdqu	6688(%rsi), %ymm4
        vmovdqu	5664(%rdx), %ymm8
        vmovdqu	6688(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 544(%rdi)
        # 144..151
        vmovdqu	576(%rsi), %ymm0
        vmovdqu	1600(%rsi), %ymm2
        vmovdqu	2624(%rsi), %ymm4
        vmovdqu	576(%rdx), %ymm6
        vmovdqu	1600(%rdx), %ymm8
        vmovdqu	2624(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3648(%rsi), %ymm2
        vmovdqu	4672(%rsi), %ymm4
        vmovdqu	3648(%rdx), %ymm8
        vmovdqu	4672(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5696(%rsi), %ymm2
        vmovdqu	6720(%rsi), %ymm4
        vmovdqu	5696(%rdx), %ymm8
        vmovdqu	6720(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 576(%rdi)
        # 152..159
        vmovdqu	608(%rsi), %ymm0
        vmovdqu	1632(%rsi), %ymm2
        vmovdqu	2656(%rsi), %ymm4
        vmovdqu	608(%rdx), %ymm6
        vmovdqu	1632(%rdx), %ymm8
        vmovdqu	2656(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3680(%rsi), %ymm2
        vmovdqu	4704(%rsi), %ymm4
        vmovdqu	3680(%rdx), %ymm8
        vmovdqu	4704(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5728(%rsi), %ymm2
        vmovdqu	6752(%rsi), %ymm4
        vmovdqu	5728(%rdx), %ymm8
        vmovdqu	6752(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 608(%rdi)
        # 160..167
        vmovdqu	640(%rsi), %ymm0
        vmovdqu	1664(%rsi), %ymm2
        vmovdqu	2688(%rsi), %ymm4
        vmovdqu	640(%rdx), %ymm6
        vmovdqu	1664(%rdx), %ymm8
        vmovdqu	2688(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3712(%rsi), %ymm2
        vmovdqu	4736(%rsi), %ymm4
        vmovdqu	3712(%rdx), %ymm8
        vmovdqu	4736(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5760(%rsi), %ymm2
        vmovdqu	6784(%rsi), %ymm4
        vmovdqu	5760(%rdx), %ymm8
        vmovdqu	6784(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 640(%rdi)
        # 168..175
        vmovdqu	672(%rsi), %ymm0
        vmovdqu	1696(%rsi), %ymm2
        vmovdqu	2720(%rsi), %ymm4
        vmovdqu	672(%rdx), %ymm6
        vmovdqu	1696(%rdx), %ymm8
        vmovdqu	2720(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3744(%rsi), %ymm2
        vmovdqu	4768(%rsi), %ymm4
        vmovdqu	3744(%rdx), %ymm8
        vmovdqu	4768(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5792(%rsi), %ymm2
        vmovdqu	6816(%rsi), %ymm4
        vmovdqu	5792(%rdx), %ymm8
        vmovdqu	6816(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 672(%rdi)
        # 176..183
        vmovdqu	704(%rsi), %ymm0
        vmovdqu	1728(%rsi), %ymm2
        vmovdqu	2752(%rsi), %ymm4
        vmovdqu	704(%rdx), %ymm6
        vmovdqu	1728(%rdx), %ymm8
        vmovdqu	2752(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3776(%rsi), %ymm2
        vmovdqu	4800(%rsi), %ymm4
        vmovdqu	3776(%rdx), %ymm8
        vmovdqu	4800(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5824(%rsi), %ymm2
        vmovdqu	6848(%rsi), %ymm4
        vmovdqu	5824(%rdx), %ymm8
        vmovdqu	6848(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 704(%rdi)
        # 184..191
        vmovdqu	736(%rsi), %ymm0
        vmovdqu	1760(%rsi), %ymm2
        vmovdqu	2784(%rsi), %ymm4
        vmovdqu	736(%rdx), %ymm6
        vmovdqu	1760(%rdx), %ymm8
        vmovdqu	2784(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3808(%rsi), %ymm2
        vmovdqu	4832(%rsi), %ymm4
        vmovdqu	3808(%rdx), %ymm8
        vmovdqu	4832(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5856(%rsi), %ymm2
        vmovdqu	6880(%rsi), %ymm4
        vmovdqu	5856(%rdx), %ymm8
        vmovdqu	6880(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 736(%rdi)
        # 192..199
        vmovdqu	768(%rsi), %ymm0
        vmovdqu	1792(%rsi), %ymm2
        vmovdqu	2816(%rsi), %ymm4
        vmovdqu	768(%rdx), %ymm6
        vmovdqu	1792(%rdx), %ymm8
        vmovdqu	2816(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3840(%rsi), %ymm2
        vmovdqu	4864(%rsi), %ymm4
        vmovdqu	3840(%rdx), %ymm8
        vmovdqu	4864(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5888(%rsi), %ymm2
        vmovdqu	6912(%rsi), %ymm4
        vmovdqu	5888(%rdx), %ymm8
        vmovdqu	6912(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 768(%rdi)
        # 200..207
        vmovdqu	800(%rsi), %ymm0
        vmovdqu	1824(%rsi), %ymm2
        vmovdqu	2848(%rsi), %ymm4
        vmovdqu	800(%rdx), %ymm6
        vmovdqu	1824(%rdx), %ymm8
        vmovdqu	2848(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3872(%rsi), %ymm2
        vmovdqu	4896(%rsi), %ymm4
        vmovdqu	3872(%rdx), %ymm8
        vmovdqu	4896(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5920(%rsi), %ymm2
        vmovdqu	6944(%rsi), %ymm4
        vmovdqu	5920(%rdx), %ymm8
        vmovdqu	6944(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 800(%rdi)
        # 208..215
        vmovdqu	832(%rsi), %ymm0
        vmovdqu	1856(%rsi), %ymm2
        vmovdqu	2880(%rsi), %ymm4
        vmovdqu	832(%rdx), %ymm6
        vmovdqu	1856(%rdx), %ymm8
        vmovdqu	2880(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3904(%rsi), %ymm2
        vmovdqu	4928(%rsi), %ymm4
        vmovdqu	3904(%rdx), %ymm8
        vmovdqu	4928(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5952(%rsi), %ymm2
        vmovdqu	6976(%rsi), %ymm4
        vmovdqu	5952(%rdx), %ymm8
        vmovdqu	6976(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 832(%rdi)
        # 216..223
        vmovdqu	864(%rsi), %ymm0
        vmovdqu	1888(%rsi), %ymm2
        vmovdqu	2912(%rsi), %ymm4
        vmovdqu	864(%rdx), %ymm6
        vmovdqu	1888(%rdx), %ymm8
        vmovdqu	2912(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3936(%rsi), %ymm2
        vmovdqu	4960(%rsi), %ymm4
        vmovdqu	3936(%rdx), %ymm8
        vmovdqu	4960(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	5984(%rsi), %ymm2
        vmovdqu	7008(%rsi), %ymm4
        vmovdqu	5984(%rdx), %ymm8
        vmovdqu	7008(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 864(%rdi)
        # 224..231
        vmovdqu	896(%rsi), %ymm0
        vmovdqu	1920(%rsi), %ymm2
        vmovdqu	2944(%rsi), %ymm4
        vmovdqu	896(%rdx), %ymm6
        vmovdqu	1920(%rdx), %ymm8
        vmovdqu	2944(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	3968(%rsi), %ymm2
        vmovdqu	4992(%rsi), %ymm4
        vmovdqu	3968(%rdx), %ymm8
        vmovdqu	4992(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	6016(%rsi), %ymm2
        vmovdqu	7040(%rsi), %ymm4
        vmovdqu	6016(%rdx), %ymm8
        vmovdqu	7040(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 896(%rdi)
        # 232..239
        vmovdqu	928(%rsi), %ymm0
        vmovdqu	1952(%rsi), %ymm2
        vmovdqu	2976(%rsi), %ymm4
        vmovdqu	928(%rdx), %ymm6
        vmovdqu	1952(%rdx), %ymm8
        vmovdqu	2976(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4000(%rsi), %ymm2
        vmovdqu	5024(%rsi), %ymm4
        vmovdqu	4000(%rdx), %ymm8
        vmovdqu	5024(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	6048(%rsi), %ymm2
        vmovdqu	7072(%rsi), %ymm4
        vmovdqu	6048(%rdx), %ymm8
        vmovdqu	7072(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 928(%rdi)
        # 240..247
        vmovdqu	960(%rsi), %ymm0
        vmovdqu	1984(%rsi), %ymm2
        vmovdqu	3008(%rsi), %ymm4
        vmovdqu	960(%rdx), %ymm6
        vmovdqu	1984(%rdx), %ymm8
        vmovdqu	3008(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4032(%rsi), %ymm2
        vmovdqu	5056(%rsi), %ymm4
        vmovdqu	4032(%rdx), %ymm8
        vmovdqu	5056(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	6080(%rsi), %ymm2
        vmovdqu	7104(%rsi), %ymm4
        vmovdqu	6080(%rdx), %ymm8
        vmovdqu	7104(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 960(%rdi)
        # 248..255
        vmovdqu	992(%rsi), %ymm0
        vmovdqu	2016(%rsi), %ymm2
        vmovdqu	3040(%rsi), %ymm4
        vmovdqu	992(%rdx), %ymm6
        vmovdqu	2016(%rdx), %ymm8
        vmovdqu	3040(%rdx), %ymm10
        vpshufd	$0xf5, %ymm0, %ymm1
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm6, %ymm7
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm6, %ymm0, %ymm0
        vpmuldq	%ymm7, %ymm1, %ymm1
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	4064(%rsi), %ymm2
        vmovdqu	5088(%rsi), %ymm4
        vmovdqu	4064(%rdx), %ymm8
        vmovdqu	5088(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        vmovdqu	6112(%rsi), %ymm2
        vmovdqu	7136(%rsi), %ymm4
        vmovdqu	6112(%rdx), %ymm8
        vmovdqu	7136(%rdx), %ymm10
        vpshufd	$0xf5, %ymm2, %ymm3
        vpshufd	$0xf5, %ymm4, %ymm5
        vpshufd	$0xf5, %ymm8, %ymm9
        vpshufd	$0xf5, %ymm10, %ymm11
        vpmuldq	%ymm8, %ymm2, %ymm2
        vpmuldq	%ymm9, %ymm3, %ymm3
        vpmuldq	%ymm10, %ymm4, %ymm4
        vpmuldq	%ymm11, %ymm5, %ymm5
        vpaddq	%ymm2, %ymm0, %ymm0
        vpaddq	%ymm3, %ymm1, %ymm1
        vpaddq	%ymm4, %ymm0, %ymm0
        vpaddq	%ymm5, %ymm1, %ymm1
        # Mont Reduce 2
        vpmulld	%ymm13, %ymm0, %ymm6
        vpmulld	%ymm13, %ymm1, %ymm7
        vpmuldq	%ymm12, %ymm6, %ymm6
        vpmuldq	%ymm12, %ymm7, %ymm7
        vpsubd	%ymm6, %ymm0, %ymm0
        vpsubd	%ymm7, %ymm1, %ymm1
        vpsrlq	$32, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 992(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_mul_vec_7_avx2,.-wc_mldsa_mul_vec_7_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mldsa_rej_idx:
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000003,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000000000004,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000003,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000002,0x0000000000000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000000000004,0x0000000000000000
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000003,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000002,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000500000004,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000002,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000400000003,0x0000000000000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000300000002,0x0000000500000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000000000005,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000500000004,0x0000000000000000
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000003,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000002,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000600000004,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000002,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000400000003,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000300000002,0x0000000600000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000600000004,0x0000000000000000
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000000,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000001,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000002,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000002
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000500000003,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000300000002,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000003
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000500000004,0x0000000000000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000400000002,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000400000003,0x0000000600000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000300000001,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000300000002,0x0000000500000004
.quad	0x0000000000000006,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000500000004,0x0000000000000006
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000700000000,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000700000001,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000700000002,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000700000002
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000700000003,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000700000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000002,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000700000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000700000003
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000700000004,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000002,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000400000003,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000002,0x0000000700000004
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000700000004,0x0000000000000000
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000001,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000002,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000002
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000500000003,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000002,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000500000004,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000400000002,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000400000003,0x0000000700000005
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000001,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000300000002,0x0000000500000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000700000005,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000500000004,0x0000000000000007
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000000,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000001,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000600000002,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000001,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000002
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000600000003,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000001,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000002,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000003
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000600000004,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000001,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000400000002,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000400000003,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000001,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000300000002,0x0000000600000004
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000600000004,0x0000000000000007
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000000,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000500000001,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000100000000,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000500000002,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000200000000,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000001,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000002
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000500000003,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000300000000,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000001,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000300000002,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000003
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000500000004,0x0000000700000006
.quad	0x0000000000000000,0x0000000000000000
.quad	0x0000000400000000,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000400000001,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000100000000,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000400000002,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000200000000,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000200000001,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000002
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000400000003,0x0000000600000005
.quad	0x0000000000000007,0x0000000000000000
.quad	0x0000000300000000,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000300000001,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000100000000,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000300000002,0x0000000500000004
.quad	0x0000000700000006,0x0000000000000000
.quad	0x0000000200000000,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000200000001,0x0000000400000003
.quad	0x0000000600000005,0x0000000000000007
.quad	0x0000000100000000,0x0000000300000002
.quad	0x0000000500000004,0x0000000700000006
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_rej_q:
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mldsa_rej_mask:
.quad	0x007fffff007fffff,0x007fffff007fffff
.quad	0x007fffff007fffff,0x007fffff007fffff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mldsa_rej_shuffle:
.quad	0x0005040300020100,0x000b0a0900080706
.quad	0x0009080700060504,0x000f0e0d000c0b0a
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mldsa_rej_ones:
.quad	0x0101010101010101,0x0101010101010101
.quad	0x0101010101010101,0x0101010101010101
#ifndef __APPLE__
.text
.globl	wc_mldsa_rej_uniform_n_avx2
.type	wc_mldsa_rej_uniform_n_avx2,@function
.align	16
wc_mldsa_rej_uniform_n_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_rej_uniform_n_avx2
.p2align	4
_wc_mldsa_rej_uniform_n_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        pushq	%r14
        movq	%rcx, %r8
        movl	%esi, %eax
        vmovdqu	L_mldsa_rej_q(%rip), %ymm6
        vmovdqu	L_mldsa_rej_mask(%rip), %ymm7
        vmovdqu	L_mldsa_rej_shuffle(%rip), %ymm8
        vmovdqu	L_mldsa_rej_ones(%rip), %ymm9
        leaq	L_mldsa_rej_idx(%rip), %r9
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 48(%rdx), %ymm0
        vpermq	$0x94, 72(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 96(%rdx), %ymm0
        vpermq	$0x94, 120(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 144(%rdx), %ymm0
        vpermq	$0x94, 168(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 192(%rdx), %ymm0
        vpermq	$0x94, 216(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 240(%rdx), %ymm0
        vpermq	$0x94, 264(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 288(%rdx), %ymm0
        vpermq	$0x94, 312(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 336(%rdx), %ymm0
        vpermq	$0x94, 360(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 384(%rdx), %ymm0
        vpermq	$0x94, 408(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 432(%rdx), %ymm0
        vpermq	$0x94, 456(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 480(%rdx), %ymm0
        vpermq	$0x94, 504(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 528(%rdx), %ymm0
        vpermq	$0x94, 552(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 576(%rdx), %ymm0
        vpermq	$0x94, 600(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 624(%rdx), %ymm0
        vpermq	$0x94, 648(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        vpermq	$0x94, 672(%rdx), %ymm0
        vpermq	$0x94, 696(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        addq	$0x2d0, %rdx
        subl	$0x2d0, %r8d
L_mldsa_rej_uniform_n_avx2_start_256:
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpand	%ymm7, %ymm0, %ymm0
        vpand	%ymm7, %ymm1, %ymm1
        vpcmpgtd	%ymm0, %ymm6, %ymm2
        vpcmpgtd	%ymm1, %ymm6, %ymm3
        vpackssdw	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        shll	$5, %r10d
        shll	$5, %ecx
        vmovdqu	(%r9,%r10,1), %ymm2
        vmovdqu	(%r9,%rcx,1), %ymm3
        vpermd	%ymm0, %ymm2, %ymm0
        vpermd	%ymm1, %ymm3, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ecx, %ecx
        vmovdqu	%ymm0, (%rdi)
        leaq	(%rdi,%r10,4), %rdi
        subl	%r10d, %esi
        vmovdqu	%ymm1, (%rdi)
        leaq	(%rdi,%rcx,4), %rdi
        subl	%ecx, %esi
        addq	$48, %rdx
        subl	$48, %r8d
        cmpl	$48, %r8d
        jl	L_mldsa_rej_uniform_n_avx2_done_256
        cmpl	$16, %esi
        jge	L_mldsa_rej_uniform_n_avx2_start_256
L_mldsa_rej_uniform_n_avx2_done_256:
        cmpl	$0x00, %esi
        je	L_mldsa_rej_uniform_n_avx2_done_64
        movq	$0xffffff00ffffff, %r14
        movq	$0x7fffff007fffff, %r13
L_mldsa_rej_uniform_n_avx2_start_64:
        movq	(%rdx), %rcx
        pdepq	%r14, %rcx, %rcx
        andq	%r13, %rcx
        cmpl	$0x7fe001, %ecx
        jge	L_mldsa_rej_uniform_0_avx2_rej_large_0
        movl	%ecx, (%rdi)
        addq	$4, %rdi
        subl	$0x01, %esi
        je	L_mldsa_rej_uniform_n_avx2_done_64
L_mldsa_rej_uniform_0_avx2_rej_large_0:
        shrq	$32, %rcx
        cmpl	$0x7fe001, %ecx
        jge	L_mldsa_rej_uniform_0_avx2_rej_large_1
        movl	%ecx, (%rdi)
        addq	$4, %rdi
        subl	$0x01, %esi
        je	L_mldsa_rej_uniform_n_avx2_done_64
L_mldsa_rej_uniform_0_avx2_rej_large_1:
        addq	$6, %rdx
        subl	$6, %r8d
        jle	L_mldsa_rej_uniform_n_avx2_done_64
        cmpl	$0x00, %esi
        jg	L_mldsa_rej_uniform_n_avx2_start_64
L_mldsa_rej_uniform_n_avx2_done_64:
        vzeroupper
        subl	%esi, %eax
        popq	%r14
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_rej_uniform_n_avx2,.-wc_mldsa_rej_uniform_n_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_rej_uniform_avx2
.type	wc_mldsa_rej_uniform_avx2,@function
.align	16
wc_mldsa_rej_uniform_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_rej_uniform_avx2
.p2align	4
_wc_mldsa_rej_uniform_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        pushq	%r14
        movq	%rcx, %r8
        movl	%esi, %eax
        movq	$0xffffff00ffffff, %r14
        movq	$0x7fffff007fffff, %r13
L_mldsa_rej_uniform_avx2_start_64:
        movq	(%rdx), %rcx
        pdepq	%r14, %rcx, %rcx
        andq	%r13, %rcx
        cmpl	$0x7fe001, %ecx
        jge	L_mldsa_rej_uniform_avx2_rej_large_0
        movl	%ecx, (%rdi)
        addq	$4, %rdi
        subl	$0x01, %esi
        je	L_mldsa_rej_uniform_avx2_done_64
L_mldsa_rej_uniform_avx2_rej_large_0:
        shrq	$32, %rcx
        cmpl	$0x7fe001, %ecx
        jge	L_mldsa_rej_uniform_avx2_rej_large_1
        movl	%ecx, (%rdi)
        addq	$4, %rdi
        subl	$0x01, %esi
        je	L_mldsa_rej_uniform_avx2_done_64
L_mldsa_rej_uniform_avx2_rej_large_1:
        addq	$6, %rdx
        subl	$6, %r8d
        jle	L_mldsa_rej_uniform_avx2_done_64
L_mldsa_rej_uniform_avx2_done_64:
        subl	%esi, %eax
        popq	%r14
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_rej_uniform_avx2,.-wc_mldsa_rej_uniform_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mldsa_shufb_rej_idx:
.quad	0xffffffffffffffff,0xffffffffffffffff
.quad	0xffffffffffff0100,0xffffffffffffffff
.quad	0xffffffffffff0302,0xffffffffffffffff
.quad	0xffffffff03020100,0xffffffffffffffff
.quad	0xffffffffffff0504,0xffffffffffffffff
.quad	0xffffffff05040100,0xffffffffffffffff
.quad	0xffffffff05040302,0xffffffffffffffff
.quad	0xffff050403020100,0xffffffffffffffff
.quad	0xffffffffffff0706,0xffffffffffffffff
.quad	0xffffffff07060100,0xffffffffffffffff
.quad	0xffffffff07060302,0xffffffffffffffff
.quad	0xffff070603020100,0xffffffffffffffff
.quad	0xffffffff07060504,0xffffffffffffffff
.quad	0xffff070605040100,0xffffffffffffffff
.quad	0xffff070605040302,0xffffffffffffffff
.quad	0x0706050403020100,0xffffffffffffffff
.quad	0xffffffffffff0908,0xffffffffffffffff
.quad	0xffffffff09080100,0xffffffffffffffff
.quad	0xffffffff09080302,0xffffffffffffffff
.quad	0xffff090803020100,0xffffffffffffffff
.quad	0xffffffff09080504,0xffffffffffffffff
.quad	0xffff090805040100,0xffffffffffffffff
.quad	0xffff090805040302,0xffffffffffffffff
.quad	0x0908050403020100,0xffffffffffffffff
.quad	0xffffffff09080706,0xffffffffffffffff
.quad	0xffff090807060100,0xffffffffffffffff
.quad	0xffff090807060302,0xffffffffffffffff
.quad	0x0908070603020100,0xffffffffffffffff
.quad	0xffff090807060504,0xffffffffffffffff
.quad	0x0908070605040100,0xffffffffffffffff
.quad	0x0908070605040302,0xffffffffffffffff
.quad	0x0706050403020100,0xffffffffffff0908
.quad	0xffffffffffff0b0a,0xffffffffffffffff
.quad	0xffffffff0b0a0100,0xffffffffffffffff
.quad	0xffffffff0b0a0302,0xffffffffffffffff
.quad	0xffff0b0a03020100,0xffffffffffffffff
.quad	0xffffffff0b0a0504,0xffffffffffffffff
.quad	0xffff0b0a05040100,0xffffffffffffffff
.quad	0xffff0b0a05040302,0xffffffffffffffff
.quad	0x0b0a050403020100,0xffffffffffffffff
.quad	0xffffffff0b0a0706,0xffffffffffffffff
.quad	0xffff0b0a07060100,0xffffffffffffffff
.quad	0xffff0b0a07060302,0xffffffffffffffff
.quad	0x0b0a070603020100,0xffffffffffffffff
.quad	0xffff0b0a07060504,0xffffffffffffffff
.quad	0x0b0a070605040100,0xffffffffffffffff
.quad	0x0b0a070605040302,0xffffffffffffffff
.quad	0x0706050403020100,0xffffffffffff0b0a
.quad	0xffffffff0b0a0908,0xffffffffffffffff
.quad	0xffff0b0a09080100,0xffffffffffffffff
.quad	0xffff0b0a09080302,0xffffffffffffffff
.quad	0x0b0a090803020100,0xffffffffffffffff
.quad	0xffff0b0a09080504,0xffffffffffffffff
.quad	0x0b0a090805040100,0xffffffffffffffff
.quad	0x0b0a090805040302,0xffffffffffffffff
.quad	0x0908050403020100,0xffffffffffff0b0a
.quad	0xffff0b0a09080706,0xffffffffffffffff
.quad	0x0b0a090807060100,0xffffffffffffffff
.quad	0x0b0a090807060302,0xffffffffffffffff
.quad	0x0908070603020100,0xffffffffffff0b0a
.quad	0x0b0a090807060504,0xffffffffffffffff
.quad	0x0908070605040100,0xffffffffffff0b0a
.quad	0x0908070605040302,0xffffffffffff0b0a
.quad	0x0706050403020100,0xffffffff0b0a0908
.quad	0xffffffffffff0d0c,0xffffffffffffffff
.quad	0xffffffff0d0c0100,0xffffffffffffffff
.quad	0xffffffff0d0c0302,0xffffffffffffffff
.quad	0xffff0d0c03020100,0xffffffffffffffff
.quad	0xffffffff0d0c0504,0xffffffffffffffff
.quad	0xffff0d0c05040100,0xffffffffffffffff
.quad	0xffff0d0c05040302,0xffffffffffffffff
.quad	0x0d0c050403020100,0xffffffffffffffff
.quad	0xffffffff0d0c0706,0xffffffffffffffff
.quad	0xffff0d0c07060100,0xffffffffffffffff
.quad	0xffff0d0c07060302,0xffffffffffffffff
.quad	0x0d0c070603020100,0xffffffffffffffff
.quad	0xffff0d0c07060504,0xffffffffffffffff
.quad	0x0d0c070605040100,0xffffffffffffffff
.quad	0x0d0c070605040302,0xffffffffffffffff
.quad	0x0706050403020100,0xffffffffffff0d0c
.quad	0xffffffff0d0c0908,0xffffffffffffffff
.quad	0xffff0d0c09080100,0xffffffffffffffff
.quad	0xffff0d0c09080302,0xffffffffffffffff
.quad	0x0d0c090803020100,0xffffffffffffffff
.quad	0xffff0d0c09080504,0xffffffffffffffff
.quad	0x0d0c090805040100,0xffffffffffffffff
.quad	0x0d0c090805040302,0xffffffffffffffff
.quad	0x0908050403020100,0xffffffffffff0d0c
.quad	0xffff0d0c09080706,0xffffffffffffffff
.quad	0x0d0c090807060100,0xffffffffffffffff
.quad	0x0d0c090807060302,0xffffffffffffffff
.quad	0x0908070603020100,0xffffffffffff0d0c
.quad	0x0d0c090807060504,0xffffffffffffffff
.quad	0x0908070605040100,0xffffffffffff0d0c
.quad	0x0908070605040302,0xffffffffffff0d0c
.quad	0x0706050403020100,0xffffffff0d0c0908
.quad	0xffffffff0d0c0b0a,0xffffffffffffffff
.quad	0xffff0d0c0b0a0100,0xffffffffffffffff
.quad	0xffff0d0c0b0a0302,0xffffffffffffffff
.quad	0x0d0c0b0a03020100,0xffffffffffffffff
.quad	0xffff0d0c0b0a0504,0xffffffffffffffff
.quad	0x0d0c0b0a05040100,0xffffffffffffffff
.quad	0x0d0c0b0a05040302,0xffffffffffffffff
.quad	0x0b0a050403020100,0xffffffffffff0d0c
.quad	0xffff0d0c0b0a0706,0xffffffffffffffff
.quad	0x0d0c0b0a07060100,0xffffffffffffffff
.quad	0x0d0c0b0a07060302,0xffffffffffffffff
.quad	0x0b0a070603020100,0xffffffffffff0d0c
.quad	0x0d0c0b0a07060504,0xffffffffffffffff
.quad	0x0b0a070605040100,0xffffffffffff0d0c
.quad	0x0b0a070605040302,0xffffffffffff0d0c
.quad	0x0706050403020100,0xffffffff0d0c0b0a
.quad	0xffff0d0c0b0a0908,0xffffffffffffffff
.quad	0x0d0c0b0a09080100,0xffffffffffffffff
.quad	0x0d0c0b0a09080302,0xffffffffffffffff
.quad	0x0b0a090803020100,0xffffffffffff0d0c
.quad	0x0d0c0b0a09080504,0xffffffffffffffff
.quad	0x0b0a090805040100,0xffffffffffff0d0c
.quad	0x0b0a090805040302,0xffffffffffff0d0c
.quad	0x0908050403020100,0xffffffff0d0c0b0a
.quad	0x0d0c0b0a09080706,0xffffffffffffffff
.quad	0x0b0a090807060100,0xffffffffffff0d0c
.quad	0x0b0a090807060302,0xffffffffffff0d0c
.quad	0x0908070603020100,0xffffffff0d0c0b0a
.quad	0x0b0a090807060504,0xffffffffffff0d0c
.quad	0x0908070605040100,0xffffffff0d0c0b0a
.quad	0x0908070605040302,0xffffffff0d0c0b0a
.quad	0x0706050403020100,0xffff0d0c0b0a0908
.quad	0xffffffffffff0f0e,0xffffffffffffffff
.quad	0xffffffff0f0e0100,0xffffffffffffffff
.quad	0xffffffff0f0e0302,0xffffffffffffffff
.quad	0xffff0f0e03020100,0xffffffffffffffff
.quad	0xffffffff0f0e0504,0xffffffffffffffff
.quad	0xffff0f0e05040100,0xffffffffffffffff
.quad	0xffff0f0e05040302,0xffffffffffffffff
.quad	0x0f0e050403020100,0xffffffffffffffff
.quad	0xffffffff0f0e0706,0xffffffffffffffff
.quad	0xffff0f0e07060100,0xffffffffffffffff
.quad	0xffff0f0e07060302,0xffffffffffffffff
.quad	0x0f0e070603020100,0xffffffffffffffff
.quad	0xffff0f0e07060504,0xffffffffffffffff
.quad	0x0f0e070605040100,0xffffffffffffffff
.quad	0x0f0e070605040302,0xffffffffffffffff
.quad	0x0706050403020100,0xffffffffffff0f0e
.quad	0xffffffff0f0e0908,0xffffffffffffffff
.quad	0xffff0f0e09080100,0xffffffffffffffff
.quad	0xffff0f0e09080302,0xffffffffffffffff
.quad	0x0f0e090803020100,0xffffffffffffffff
.quad	0xffff0f0e09080504,0xffffffffffffffff
.quad	0x0f0e090805040100,0xffffffffffffffff
.quad	0x0f0e090805040302,0xffffffffffffffff
.quad	0x0908050403020100,0xffffffffffff0f0e
.quad	0xffff0f0e09080706,0xffffffffffffffff
.quad	0x0f0e090807060100,0xffffffffffffffff
.quad	0x0f0e090807060302,0xffffffffffffffff
.quad	0x0908070603020100,0xffffffffffff0f0e
.quad	0x0f0e090807060504,0xffffffffffffffff
.quad	0x0908070605040100,0xffffffffffff0f0e
.quad	0x0908070605040302,0xffffffffffff0f0e
.quad	0x0706050403020100,0xffffffff0f0e0908
.quad	0xffffffff0f0e0b0a,0xffffffffffffffff
.quad	0xffff0f0e0b0a0100,0xffffffffffffffff
.quad	0xffff0f0e0b0a0302,0xffffffffffffffff
.quad	0x0f0e0b0a03020100,0xffffffffffffffff
.quad	0xffff0f0e0b0a0504,0xffffffffffffffff
.quad	0x0f0e0b0a05040100,0xffffffffffffffff
.quad	0x0f0e0b0a05040302,0xffffffffffffffff
.quad	0x0b0a050403020100,0xffffffffffff0f0e
.quad	0xffff0f0e0b0a0706,0xffffffffffffffff
.quad	0x0f0e0b0a07060100,0xffffffffffffffff
.quad	0x0f0e0b0a07060302,0xffffffffffffffff
.quad	0x0b0a070603020100,0xffffffffffff0f0e
.quad	0x0f0e0b0a07060504,0xffffffffffffffff
.quad	0x0b0a070605040100,0xffffffffffff0f0e
.quad	0x0b0a070605040302,0xffffffffffff0f0e
.quad	0x0706050403020100,0xffffffff0f0e0b0a
.quad	0xffff0f0e0b0a0908,0xffffffffffffffff
.quad	0x0f0e0b0a09080100,0xffffffffffffffff
.quad	0x0f0e0b0a09080302,0xffffffffffffffff
.quad	0x0b0a090803020100,0xffffffffffff0f0e
.quad	0x0f0e0b0a09080504,0xffffffffffffffff
.quad	0x0b0a090805040100,0xffffffffffff0f0e
.quad	0x0b0a090805040302,0xffffffffffff0f0e
.quad	0x0908050403020100,0xffffffff0f0e0b0a
.quad	0x0f0e0b0a09080706,0xffffffffffffffff
.quad	0x0b0a090807060100,0xffffffffffff0f0e
.quad	0x0b0a090807060302,0xffffffffffff0f0e
.quad	0x0908070603020100,0xffffffff0f0e0b0a
.quad	0x0b0a090807060504,0xffffffffffff0f0e
.quad	0x0908070605040100,0xffffffff0f0e0b0a
.quad	0x0908070605040302,0xffffffff0f0e0b0a
.quad	0x0706050403020100,0xffff0f0e0b0a0908
.quad	0xffffffff0f0e0d0c,0xffffffffffffffff
.quad	0xffff0f0e0d0c0100,0xffffffffffffffff
.quad	0xffff0f0e0d0c0302,0xffffffffffffffff
.quad	0x0f0e0d0c03020100,0xffffffffffffffff
.quad	0xffff0f0e0d0c0504,0xffffffffffffffff
.quad	0x0f0e0d0c05040100,0xffffffffffffffff
.quad	0x0f0e0d0c05040302,0xffffffffffffffff
.quad	0x0d0c050403020100,0xffffffffffff0f0e
.quad	0xffff0f0e0d0c0706,0xffffffffffffffff
.quad	0x0f0e0d0c07060100,0xffffffffffffffff
.quad	0x0f0e0d0c07060302,0xffffffffffffffff
.quad	0x0d0c070603020100,0xffffffffffff0f0e
.quad	0x0f0e0d0c07060504,0xffffffffffffffff
.quad	0x0d0c070605040100,0xffffffffffff0f0e
.quad	0x0d0c070605040302,0xffffffffffff0f0e
.quad	0x0706050403020100,0xffffffff0f0e0d0c
.quad	0xffff0f0e0d0c0908,0xffffffffffffffff
.quad	0x0f0e0d0c09080100,0xffffffffffffffff
.quad	0x0f0e0d0c09080302,0xffffffffffffffff
.quad	0x0d0c090803020100,0xffffffffffff0f0e
.quad	0x0f0e0d0c09080504,0xffffffffffffffff
.quad	0x0d0c090805040100,0xffffffffffff0f0e
.quad	0x0d0c090805040302,0xffffffffffff0f0e
.quad	0x0908050403020100,0xffffffff0f0e0d0c
.quad	0x0f0e0d0c09080706,0xffffffffffffffff
.quad	0x0d0c090807060100,0xffffffffffff0f0e
.quad	0x0d0c090807060302,0xffffffffffff0f0e
.quad	0x0908070603020100,0xffffffff0f0e0d0c
.quad	0x0d0c090807060504,0xffffffffffff0f0e
.quad	0x0908070605040100,0xffffffff0f0e0d0c
.quad	0x0908070605040302,0xffffffff0f0e0d0c
.quad	0x0706050403020100,0xffff0f0e0d0c0908
.quad	0xffff0f0e0d0c0b0a,0xffffffffffffffff
.quad	0x0f0e0d0c0b0a0100,0xffffffffffffffff
.quad	0x0f0e0d0c0b0a0302,0xffffffffffffffff
.quad	0x0d0c0b0a03020100,0xffffffffffff0f0e
.quad	0x0f0e0d0c0b0a0504,0xffffffffffffffff
.quad	0x0d0c0b0a05040100,0xffffffffffff0f0e
.quad	0x0d0c0b0a05040302,0xffffffffffff0f0e
.quad	0x0b0a050403020100,0xffffffff0f0e0d0c
.quad	0x0f0e0d0c0b0a0706,0xffffffffffffffff
.quad	0x0d0c0b0a07060100,0xffffffffffff0f0e
.quad	0x0d0c0b0a07060302,0xffffffffffff0f0e
.quad	0x0b0a070603020100,0xffffffff0f0e0d0c
.quad	0x0d0c0b0a07060504,0xffffffffffff0f0e
.quad	0x0b0a070605040100,0xffffffff0f0e0d0c
.quad	0x0b0a070605040302,0xffffffff0f0e0d0c
.quad	0x0706050403020100,0xffff0f0e0d0c0b0a
.quad	0x0f0e0d0c0b0a0908,0xffffffffffffffff
.quad	0x0d0c0b0a09080100,0xffffffffffff0f0e
.quad	0x0d0c0b0a09080302,0xffffffffffff0f0e
.quad	0x0b0a090803020100,0xffffffff0f0e0d0c
.quad	0x0d0c0b0a09080504,0xffffffffffff0f0e
.quad	0x0b0a090805040100,0xffffffff0f0e0d0c
.quad	0x0b0a090805040302,0xffffffff0f0e0d0c
.quad	0x0908050403020100,0xffff0f0e0d0c0b0a
.quad	0x0d0c0b0a09080706,0xffffffffffff0f0e
.quad	0x0b0a090807060100,0xffffffff0f0e0d0c
.quad	0x0b0a090807060302,0xffffffff0f0e0d0c
.quad	0x0908070603020100,0xffff0f0e0d0c0b0a
.quad	0x0b0a090807060504,0xffffffff0f0e0d0c
.quad	0x0908070605040100,0xffff0f0e0d0c0b0a
.quad	0x0908070605040302,0xffff0f0e0d0c0b0a
.quad	0x0706050403020100,0x0f0e0d0c0b0a0908
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta2_mask_nibbles:
.short	0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f
.short	0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta2_mul:
.short	0x3340,0x3340,0x3340,0x3340,0x3340,0x3340,0x3340,0x3340
.short	0x3340,0x3340,0x3340,0x3340,0x3340,0x3340,0x3340,0x3340
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta2_five:
.short	0x0005,0x0005,0x0005,0x0005,0x0005,0x0005,0x0005,0x0005
.short	0x0005,0x0005,0x0005,0x0005,0x0005,0x0005,0x0005,0x0005
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta2_two:
.short	0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002
.short	0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta2_nibble_table:
.long	0x00000002,0x00000001,0x00000000,0xffffffff
.long	0xfffffffe,0x00000002,0x00000001,0x00000000
.long	0xffffffff,0xfffffffe,0x00000002,0x00000001
.long	0x00000000,0xffffffff,0xfffffffe,0x00000000
#ifndef __APPLE__
.text
.globl	wc_mldsa_extract_coeffs_eta2_avx2
.type	wc_mldsa_extract_coeffs_eta2_avx2,@function
.align	16
wc_mldsa_extract_coeffs_eta2_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_extract_coeffs_eta2_avx2
.p2align	4
_wc_mldsa_extract_coeffs_eta2_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        vmovdqu	L_mldsa_extract_coeffs_eta2_mask_nibbles(%rip), %ymm6
        vmovdqu	L_mldsa_extract_coeffs_eta2_mul(%rip), %ymm7
        vmovdqu	L_mldsa_extract_coeffs_eta2_five(%rip), %ymm8
        vmovdqu	L_mldsa_extract_coeffs_eta2_two(%rip), %ymm9
        leaq	L_mldsa_shufb_rej_idx(%rip), %r13
        movl	(%rcx), %r8d
        cmpl	$0x00, %r8d
        jne	L_mldsa_extract_coeffs_eta2_less_than_256
        vpmovzxbd	(%rdi), %ymm0
        vpmovzxbd	8(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	16(%rdi), %ymm0
        vpmovzxbd	24(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	32(%rdi), %ymm0
        vpmovzxbd	40(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	48(%rdi), %ymm0
        vpmovzxbd	56(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	64(%rdi), %ymm0
        vpmovzxbd	72(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	80(%rdi), %ymm0
        vpmovzxbd	88(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	96(%rdi), %ymm0
        vpmovzxbd	104(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	112(%rdi), %ymm0
        vpmovzxbd	120(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%rbx,1), %ymm3
        vmovdqu	(%r13,%r11,1), %ymm4
        vmovdqu	(%r13,%r12,1), %ymm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmulhw	%ymm7, %ymm1, %ymm3
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsubw	%ymm0, %ymm9, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        subl	$0x80, %esi
        addq	$0x80, %rdi
L_mldsa_extract_coeffs_eta2_less_than_256:
        cmpl	$0xf0, %r8d
        jg	L_mldsa_extract_coeffs_eta2_less_than_ymm
L_mldsa_extract_coeffs_eta2_start_one_ymm:
        vpmovzxbd	(%rdi), %ymm0
        vpslld	$12, %ymm0, %ymm2
        vpor	%ymm2, %ymm0, %ymm0
        vpand	%ymm6, %ymm0, %ymm0
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movzbl	%al, %r10d
        shr	$16, %r11
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %r11d
        vmovdqu	(%r13,%r10,1), %ymm2
        vmovdqu	(%r13,%r11,1), %ymm4
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vpshufb	%ymm2, %ymm0, %ymm0
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        vpmulhw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm9, %ymm0
        vpaddw	%ymm2, %ymm0, %ymm0
        vpmovsxwd	%xmm0, %ymm2
        vextracti128	$0x01, %ymm0, %xmm0
        vpmovsxwd	%xmm0, %ymm0
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        subl	$8, %esi
        addq	$8, %rdi
        cmpl	$8, %esi
        jl	L_mldsa_extract_coeffs_eta2_less_than_ymm
        cmpl	$0xf0, %r8d
        jle	L_mldsa_extract_coeffs_eta2_start_one_ymm
L_mldsa_extract_coeffs_eta2_less_than_ymm:
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta2_done
L_mldsa_extract_coeffs_eta2_start_byte:
        leaq	L_mldsa_extract_coeffs_eta2_nibble_table(%rip), %r13
        cmpl	$0x00, %esi
        je	L_mldsa_extract_coeffs_eta2_done
        movzbl	(%rdi), %ebx
        addq	$0x01, %rdi
        subl	$0x01, %esi
        movl	%ebx, %eax
        shrl	$4, %eax
        andb	$15, %bl
        xorq	%r11, %r11
        cmpb	$15, %bl
        adcl	$0x00, %r11d
        movl	(%r13,%rbx,4), %r12d
        movl	%r12d, (%rdx)
        addl	%r11d, %r8d
        shll	$2, %r11d
        addq	%r11, %rdx
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta2_done
        xorq	%r11, %r11
        cmpb	$15, %al
        adcl	$0x00, %r11d
        movl	(%r13,%rax,4), %r12d
        movl	%r12d, (%rdx)
        addl	%r11d, %r8d
        shll	$2, %r11d
        addq	%r11, %rdx
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta2_done
        jmp	L_mldsa_extract_coeffs_eta2_start_byte
L_mldsa_extract_coeffs_eta2_done:
        movl	%r8d, (%rcx)
        vzeroupper
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_extract_coeffs_eta2_avx2,.-wc_mldsa_extract_coeffs_eta2_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta4_mask_nibbles:
.short	0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f
.short	0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f,0x000f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta4_nine:
.short	0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009
.short	0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_extract_coeffs_eta4_four:
.short	0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004
.short	0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004
#ifndef __APPLE__
.text
.globl	wc_mldsa_extract_coeffs_eta4_avx2
.type	wc_mldsa_extract_coeffs_eta4_avx2,@function
.align	16
wc_mldsa_extract_coeffs_eta4_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_extract_coeffs_eta4_avx2
.p2align	4
_wc_mldsa_extract_coeffs_eta4_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        vmovdqu	L_mldsa_extract_coeffs_eta4_mask_nibbles(%rip), %ymm6
        vmovdqu	L_mldsa_extract_coeffs_eta4_nine(%rip), %ymm7
        vmovdqu	L_mldsa_extract_coeffs_eta4_four(%rip), %ymm8
        leaq	L_mldsa_shufb_rej_idx(%rip), %r13
        movl	(%rcx), %r8d
        cmpl	$0x00, %r8d
        jne	L_mldsa_extract_coeffs_eta4_less_than_256
        vpmovzxbd	(%rdi), %ymm0
        vpmovzxbd	8(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	16(%rdi), %ymm0
        vpmovzxbd	24(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	32(%rdi), %ymm0
        vpmovzxbd	40(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	48(%rdi), %ymm0
        vpmovzxbd	56(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	64(%rdi), %ymm0
        vpmovzxbd	72(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	80(%rdi), %ymm0
        vpmovzxbd	88(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	96(%rdi), %ymm0
        vpmovzxbd	104(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        vpmovzxbd	112(%rdi), %ymm0
        vpmovzxbd	120(%rdi), %ymm1
        vpslld	$12, %ymm0, %ymm2
        vpslld	$12, %ymm1, %ymm3
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm1, %ymm1
        vpand	%ymm6, %ymm0, %ymm0
        vpand	%ymm6, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpcmpgtw	%ymm1, %ymm7, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movl	%eax, %r12d
        movzbl	%al, %r10d
        movzbl	%ah, %ebx
        shr	$16, %r11
        shr	$24, %r12
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %ebx
        shll	$4, %r11d
        shll	$4, %r12d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%rbx,1), %xmm3
        vmovdqu	(%r13,%r11,1), %xmm4
        vmovdqu	(%r13,%r12,1), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        popcntl	%r10d, %r10d
        popcntl	%ebx, %ebx
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm8, %ymm1
        vpmovsxwd	%xmm0, %ymm2
        vpmovsxwd	%xmm1, %ymm3
        vextracti128	$0x01, %ymm0, %xmm0
        vextracti128	$0x01, %ymm1, %xmm1
        vpmovsxwd	%xmm0, %ymm0
        vpmovsxwd	%xmm1, %ymm1
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        vmovdqu	%ymm3, (%rdx)
        leaq	(%rdx,%rbx,4), %rdx
        addl	%ebx, %r8d
        vmovdqu	%ymm1, (%rdx)
        leaq	(%rdx,%r12,4), %rdx
        addl	%r12d, %r8d
        subl	$0x80, %esi
        addq	$0x80, %rdi
L_mldsa_extract_coeffs_eta4_less_than_256:
        cmpl	$0xf0, %r8d
        jg	L_mldsa_extract_coeffs_eta4_less_than_ymm
L_mldsa_extract_coeffs_eta4_start_one_ymm:
        vpmovzxbd	(%rdi), %ymm0
        vpslld	$12, %ymm0, %ymm2
        vpor	%ymm2, %ymm0, %ymm0
        vpand	%ymm6, %ymm0, %ymm0
        vpcmpgtw	%ymm0, %ymm7, %ymm2
        vpacksswb	%ymm2, %ymm2, %ymm2
        vpmovmskb	%ymm2, %eax
        movl	%eax, %r11d
        movzbl	%al, %r10d
        shr	$16, %r11
        andl	$0xff, %r11d
        shll	$4, %r10d
        shll	$4, %r11d
        vmovdqu	(%r13,%r10,1), %xmm2
        vmovdqu	(%r13,%r11,1), %xmm4
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vpshufb	%ymm2, %ymm0, %ymm0
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        vpsubw	%ymm0, %ymm8, %ymm0
        vpmovsxwd	%xmm0, %ymm2
        vextracti128	$0x01, %ymm0, %xmm0
        vpmovsxwd	%xmm0, %ymm0
        vmovdqu	%ymm2, (%rdx)
        leaq	(%rdx,%r10,4), %rdx
        addl	%r10d, %r8d
        vmovdqu	%ymm0, (%rdx)
        leaq	(%rdx,%r11,4), %rdx
        addl	%r11d, %r8d
        subl	$8, %esi
        addq	$8, %rdi
        cmpl	$8, %esi
        jl	L_mldsa_extract_coeffs_eta4_less_than_ymm
        cmpl	$0xf0, %r8d
        jle	L_mldsa_extract_coeffs_eta4_start_one_ymm
L_mldsa_extract_coeffs_eta4_less_than_ymm:
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta4_done
L_mldsa_extract_coeffs_eta4_start_byte:
        cmpl	$0x00, %esi
        je	L_mldsa_extract_coeffs_eta4_done
        movzbl	(%rdi), %ebx
        addq	$0x01, %rdi
        subl	$0x01, %esi
        movl	%ebx, %eax
        shrl	$4, %eax
        andb	$15, %bl
        xorq	%r11, %r11
        movq	$4, %r12
        cmpb	$9, %bl
        adcl	$0x00, %r11d
        subl	%ebx, %r12d
        movl	%r12d, (%rdx)
        addl	%r11d, %r8d
        shll	$2, %r11d
        addq	%r11, %rdx
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta4_done
        xorq	%r11, %r11
        movq	$4, %r12
        cmpb	$9, %al
        adcl	$0x00, %r11d
        subl	%eax, %r12d
        movl	%r12d, (%rdx)
        addl	%r11d, %r8d
        shll	$2, %r11d
        addq	%r11, %rdx
        cmpl	$0x100, %r8d
        je	L_mldsa_extract_coeffs_eta4_done
        jmp	L_mldsa_extract_coeffs_eta4_start_byte
L_mldsa_extract_coeffs_eta4_done:
        movl	%r8d, (%rcx)
        vzeroupper
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_extract_coeffs_eta4_avx2,.-wc_mldsa_extract_coeffs_eta4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_redistribute_21_rand_avx2
.type	wc_mldsa_redistribute_21_rand_avx2,@function
.align	16
wc_mldsa_redistribute_21_rand_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_redistribute_21_rand_avx2
.p2align	4
_wc_mldsa_redistribute_21_rand_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vmovdqu	256(%rdi), %ymm8
        vmovdqu	288(%rdi), %ymm9
        vmovdqu	320(%rdi), %ymm10
        vmovdqu	352(%rdi), %ymm11
        vpunpcklqdq	%ymm1, %ymm0, %ymm12
        vpunpckhqdq	%ymm1, %ymm0, %ymm13
        vpunpcklqdq	%ymm3, %ymm2, %ymm14
        vpunpckhqdq	%ymm3, %ymm2, %ymm15
        vperm2i128	$32, %ymm14, %ymm12, %ymm0
        vperm2i128	$32, %ymm15, %ymm13, %ymm1
        vperm2i128	$49, %ymm14, %ymm12, %ymm2
        vperm2i128	$49, %ymm15, %ymm13, %ymm3
        vpunpcklqdq	%ymm5, %ymm4, %ymm12
        vpunpckhqdq	%ymm5, %ymm4, %ymm13
        vpunpcklqdq	%ymm7, %ymm6, %ymm14
        vpunpckhqdq	%ymm7, %ymm6, %ymm15
        vperm2i128	$32, %ymm14, %ymm12, %ymm4
        vperm2i128	$32, %ymm15, %ymm13, %ymm5
        vperm2i128	$49, %ymm14, %ymm12, %ymm6
        vperm2i128	$49, %ymm15, %ymm13, %ymm7
        vpunpcklqdq	%ymm9, %ymm8, %ymm12
        vpunpckhqdq	%ymm9, %ymm8, %ymm13
        vpunpcklqdq	%ymm11, %ymm10, %ymm14
        vpunpckhqdq	%ymm11, %ymm10, %ymm15
        vperm2i128	$32, %ymm14, %ymm12, %ymm8
        vperm2i128	$32, %ymm15, %ymm13, %ymm9
        vperm2i128	$49, %ymm14, %ymm12, %ymm10
        vperm2i128	$49, %ymm15, %ymm13, %ymm11
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm4, 32(%rsi)
        vmovdqu	%ymm8, 64(%rsi)
        vmovdqu	%ymm1, (%rdx)
        vmovdqu	%ymm5, 32(%rdx)
        vmovdqu	%ymm9, 64(%rdx)
        vmovdqu	%ymm2, (%rcx)
        vmovdqu	%ymm6, 32(%rcx)
        vmovdqu	%ymm10, 64(%rcx)
        vmovdqu	%ymm3, (%r8)
        vmovdqu	%ymm7, 32(%r8)
        vmovdqu	%ymm11, 64(%r8)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vmovdqu	512(%rdi), %ymm4
        vmovdqu	544(%rdi), %ymm5
        vmovdqu	576(%rdi), %ymm6
        vmovdqu	608(%rdi), %ymm7
        movq	640(%rdi), %rax
        movq	648(%rdi), %r9
        movq	656(%rdi), %r10
        movq	664(%rdi), %r11
        vpunpcklqdq	%ymm1, %ymm0, %ymm12
        vpunpckhqdq	%ymm1, %ymm0, %ymm13
        vpunpcklqdq	%ymm3, %ymm2, %ymm14
        vpunpckhqdq	%ymm3, %ymm2, %ymm15
        vperm2i128	$32, %ymm14, %ymm12, %ymm0
        vperm2i128	$32, %ymm15, %ymm13, %ymm1
        vperm2i128	$49, %ymm14, %ymm12, %ymm2
        vperm2i128	$49, %ymm15, %ymm13, %ymm3
        vpunpcklqdq	%ymm5, %ymm4, %ymm12
        vpunpckhqdq	%ymm5, %ymm4, %ymm13
        vpunpcklqdq	%ymm7, %ymm6, %ymm14
        vpunpckhqdq	%ymm7, %ymm6, %ymm15
        vperm2i128	$32, %ymm14, %ymm12, %ymm4
        vperm2i128	$32, %ymm15, %ymm13, %ymm5
        vperm2i128	$49, %ymm14, %ymm12, %ymm6
        vperm2i128	$49, %ymm15, %ymm13, %ymm7
        vmovdqu	%ymm0, 96(%rsi)
        vmovdqu	%ymm4, 128(%rsi)
        movq	%rax, 160(%rsi)
        vmovdqu	%ymm1, 96(%rdx)
        vmovdqu	%ymm5, 128(%rdx)
        movq	%r9, 160(%rdx)
        vmovdqu	%ymm2, 96(%rcx)
        vmovdqu	%ymm6, 128(%rcx)
        movq	%r10, 160(%rcx)
        vmovdqu	%ymm3, 96(%r8)
        vmovdqu	%ymm7, 128(%r8)
        movq	%r11, 160(%r8)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_redistribute_21_rand_avx2,.-wc_mldsa_redistribute_21_rand_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_redistribute_17_rand_avx2
.type	wc_mldsa_redistribute_17_rand_avx2,@function
.align	16
wc_mldsa_redistribute_17_rand_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_redistribute_17_rand_avx2
.p2align	4
_wc_mldsa_redistribute_17_rand_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm9
        vpunpcklqdq	%ymm3, %ymm2, %ymm10
        vpunpckhqdq	%ymm3, %ymm2, %ymm11
        vperm2i128	$32, %ymm10, %ymm8, %ymm0
        vperm2i128	$32, %ymm11, %ymm9, %ymm1
        vperm2i128	$49, %ymm10, %ymm8, %ymm2
        vperm2i128	$49, %ymm11, %ymm9, %ymm3
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm9
        vpunpcklqdq	%ymm7, %ymm6, %ymm10
        vpunpckhqdq	%ymm7, %ymm6, %ymm11
        vperm2i128	$32, %ymm10, %ymm8, %ymm4
        vperm2i128	$32, %ymm11, %ymm9, %ymm5
        vperm2i128	$49, %ymm10, %ymm8, %ymm6
        vperm2i128	$49, %ymm11, %ymm9, %ymm7
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm4, 32(%rsi)
        vmovdqu	%ymm1, (%rdx)
        vmovdqu	%ymm5, 32(%rdx)
        vmovdqu	%ymm2, (%rcx)
        vmovdqu	%ymm6, 32(%rcx)
        vmovdqu	%ymm3, (%r8)
        vmovdqu	%ymm7, 32(%r8)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        movq	512(%rdi), %rax
        movq	520(%rdi), %r9
        movq	528(%rdi), %r10
        movq	536(%rdi), %r11
        vpunpcklqdq	%ymm1, %ymm0, %ymm8
        vpunpckhqdq	%ymm1, %ymm0, %ymm9
        vpunpcklqdq	%ymm3, %ymm2, %ymm10
        vpunpckhqdq	%ymm3, %ymm2, %ymm11
        vperm2i128	$32, %ymm10, %ymm8, %ymm0
        vperm2i128	$32, %ymm11, %ymm9, %ymm1
        vperm2i128	$49, %ymm10, %ymm8, %ymm2
        vperm2i128	$49, %ymm11, %ymm9, %ymm3
        vpunpcklqdq	%ymm5, %ymm4, %ymm8
        vpunpckhqdq	%ymm5, %ymm4, %ymm9
        vpunpcklqdq	%ymm7, %ymm6, %ymm10
        vpunpckhqdq	%ymm7, %ymm6, %ymm11
        vperm2i128	$32, %ymm10, %ymm8, %ymm4
        vperm2i128	$32, %ymm11, %ymm9, %ymm5
        vperm2i128	$49, %ymm10, %ymm8, %ymm6
        vperm2i128	$49, %ymm11, %ymm9, %ymm7
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm4, 96(%rsi)
        movq	%rax, 128(%rsi)
        vmovdqu	%ymm1, 64(%rdx)
        vmovdqu	%ymm5, 96(%rdx)
        movq	%r9, 128(%rdx)
        vmovdqu	%ymm2, 64(%rcx)
        vmovdqu	%ymm6, 96(%rcx)
        movq	%r10, 128(%rcx)
        vmovdqu	%ymm3, 64(%r8)
        vmovdqu	%ymm7, 96(%r8)
        movq	%r11, 128(%r8)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_redistribute_17_rand_avx2,.-wc_mldsa_redistribute_17_rand_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_two:
.long	0x00000002,0x00000002,0x00000002,0x00000002
.long	0x00000002,0x00000002,0x00000002,0x00000002
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_vs_3:
.long	0x00000000,0x00000003,0x00000006,0x00000009
.long	0x00000004,0x00000007,0x0000000a,0x0000000d
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_shuff_3_even:
.byte	0x00,0xff,0x04,0x05,0x08,0xff,0x0c,0x0d
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x00,0xff,0x04,0x05,0x08,0xff,0x0c,0x0d
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_shuff_3_odd:
.byte	0x02,0xff,0xff,0x07,0x0a,0x0b,0xff,0x0f
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x02,0xff,0xff,0x07,0x0a,0x0b,0xff,0x0f
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_shuff_6_even:
.byte	0x00,0x04,0x05,0x08,0x0c,0x0d,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x04
.byte	0x05,0x08,0x0c,0x0d,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_2_avx2_shuff_6_odd:
.byte	0x02,0x03,0x07,0x0a,0x0b,0x0f,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x03
.byte	0x07,0x0a,0x0b,0x0f,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.text
.globl	wc_mldsa_vec_encode_eta_2_avx2
.type	wc_mldsa_vec_encode_eta_2_avx2,@function
.align	16
wc_mldsa_vec_encode_eta_2_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_vec_encode_eta_2_avx2
.p2align	4
_wc_mldsa_vec_encode_eta_2_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_encode_eta_2_avx2_two(%rip), %ymm6
        vmovdqu	L_mldsa_encode_eta_2_avx2_vs_3(%rip), %ymm7
        vmovdqu	L_mldsa_encode_eta_2_avx2_shuff_3_even(%rip), %ymm8
        vmovdqu	L_mldsa_encode_eta_2_avx2_shuff_3_odd(%rip), %ymm9
        vmovdqu	L_mldsa_encode_eta_2_avx2_shuff_6_even(%rip), %ymm10
        vmovdqu	L_mldsa_encode_eta_2_avx2_shuff_6_odd(%rip), %ymm11
L_mldsa_encode_eta_2_avx2_loop:
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpsubd	%ymm0, %ymm6, %ymm0
        vpsubd	%ymm1, %ymm6, %ymm1
        vpsubd	%ymm2, %ymm6, %ymm2
        vpsubd	%ymm3, %ymm6, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpackusdw	%ymm2, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm1, %ymm1
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm1, %ymm5
        vpshufb	%ymm8, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm1, %ymm1
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpermq	$0xb1, %ymm1, %ymm1
        vpor	%ymm1, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm0, %ymm0
        vpor	%ymm4, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm4
        vpor	%ymm4, %ymm0, %ymm0
        vmovdqu	%xmm0, (%rdx)
        addq	$12, %rdx
        addq	$0x400, %rdi
        decb	%sil
        jnz	L_mldsa_encode_eta_2_avx2_loop
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_vec_encode_eta_2_avx2,.-wc_mldsa_vec_encode_eta_2_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_4_avx2_four:
.long	0x00000004,0x00000004,0x00000004,0x00000004
.long	0x00000004,0x00000004,0x00000004,0x00000004
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_eta_4_avx2_vs_4:
.long	0x00000000,0x00000004,0x00000000,0x00000004
.long	0x00000000,0x00000004,0x00000000,0x00000004
#ifndef __APPLE__
.text
.globl	wc_mldsa_vec_encode_eta_4_avx2
.type	wc_mldsa_vec_encode_eta_4_avx2,@function
.align	16
wc_mldsa_vec_encode_eta_4_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_vec_encode_eta_4_avx2
.p2align	4
_wc_mldsa_vec_encode_eta_4_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_encode_eta_4_avx2_four(%rip), %ymm8
        vmovdqu	L_mldsa_encode_eta_4_avx2_vs_4(%rip), %ymm9
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rsi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rsi)
        vmovdqu	1024(%rdi), %ymm0
        vmovdqu	1056(%rdi), %ymm1
        vmovdqu	1088(%rdi), %ymm2
        vmovdqu	1120(%rdi), %ymm3
        vmovdqu	1152(%rdi), %ymm4
        vmovdqu	1184(%rdi), %ymm5
        vmovdqu	1216(%rdi), %ymm6
        vmovdqu	1248(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	1280(%rdi), %ymm0
        vmovdqu	1312(%rdi), %ymm1
        vmovdqu	1344(%rdi), %ymm2
        vmovdqu	1376(%rdi), %ymm3
        vmovdqu	1408(%rdi), %ymm4
        vmovdqu	1440(%rdi), %ymm5
        vmovdqu	1472(%rdi), %ymm6
        vmovdqu	1504(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 160(%rsi)
        vmovdqu	1536(%rdi), %ymm0
        vmovdqu	1568(%rdi), %ymm1
        vmovdqu	1600(%rdi), %ymm2
        vmovdqu	1632(%rdi), %ymm3
        vmovdqu	1664(%rdi), %ymm4
        vmovdqu	1696(%rdi), %ymm5
        vmovdqu	1728(%rdi), %ymm6
        vmovdqu	1760(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	1792(%rdi), %ymm0
        vmovdqu	1824(%rdi), %ymm1
        vmovdqu	1856(%rdi), %ymm2
        vmovdqu	1888(%rdi), %ymm3
        vmovdqu	1920(%rdi), %ymm4
        vmovdqu	1952(%rdi), %ymm5
        vmovdqu	1984(%rdi), %ymm6
        vmovdqu	2016(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 224(%rsi)
        vmovdqu	2048(%rdi), %ymm0
        vmovdqu	2080(%rdi), %ymm1
        vmovdqu	2112(%rdi), %ymm2
        vmovdqu	2144(%rdi), %ymm3
        vmovdqu	2176(%rdi), %ymm4
        vmovdqu	2208(%rdi), %ymm5
        vmovdqu	2240(%rdi), %ymm6
        vmovdqu	2272(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	2304(%rdi), %ymm0
        vmovdqu	2336(%rdi), %ymm1
        vmovdqu	2368(%rdi), %ymm2
        vmovdqu	2400(%rdi), %ymm3
        vmovdqu	2432(%rdi), %ymm4
        vmovdqu	2464(%rdi), %ymm5
        vmovdqu	2496(%rdi), %ymm6
        vmovdqu	2528(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 288(%rsi)
        vmovdqu	2560(%rdi), %ymm0
        vmovdqu	2592(%rdi), %ymm1
        vmovdqu	2624(%rdi), %ymm2
        vmovdqu	2656(%rdi), %ymm3
        vmovdqu	2688(%rdi), %ymm4
        vmovdqu	2720(%rdi), %ymm5
        vmovdqu	2752(%rdi), %ymm6
        vmovdqu	2784(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	2816(%rdi), %ymm0
        vmovdqu	2848(%rdi), %ymm1
        vmovdqu	2880(%rdi), %ymm2
        vmovdqu	2912(%rdi), %ymm3
        vmovdqu	2944(%rdi), %ymm4
        vmovdqu	2976(%rdi), %ymm5
        vmovdqu	3008(%rdi), %ymm6
        vmovdqu	3040(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 352(%rsi)
        vmovdqu	3072(%rdi), %ymm0
        vmovdqu	3104(%rdi), %ymm1
        vmovdqu	3136(%rdi), %ymm2
        vmovdqu	3168(%rdi), %ymm3
        vmovdqu	3200(%rdi), %ymm4
        vmovdqu	3232(%rdi), %ymm5
        vmovdqu	3264(%rdi), %ymm6
        vmovdqu	3296(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	3328(%rdi), %ymm0
        vmovdqu	3360(%rdi), %ymm1
        vmovdqu	3392(%rdi), %ymm2
        vmovdqu	3424(%rdi), %ymm3
        vmovdqu	3456(%rdi), %ymm4
        vmovdqu	3488(%rdi), %ymm5
        vmovdqu	3520(%rdi), %ymm6
        vmovdqu	3552(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 416(%rsi)
        vmovdqu	3584(%rdi), %ymm0
        vmovdqu	3616(%rdi), %ymm1
        vmovdqu	3648(%rdi), %ymm2
        vmovdqu	3680(%rdi), %ymm3
        vmovdqu	3712(%rdi), %ymm4
        vmovdqu	3744(%rdi), %ymm5
        vmovdqu	3776(%rdi), %ymm6
        vmovdqu	3808(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	3840(%rdi), %ymm0
        vmovdqu	3872(%rdi), %ymm1
        vmovdqu	3904(%rdi), %ymm2
        vmovdqu	3936(%rdi), %ymm3
        vmovdqu	3968(%rdi), %ymm4
        vmovdqu	4000(%rdi), %ymm5
        vmovdqu	4032(%rdi), %ymm6
        vmovdqu	4064(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 480(%rsi)
        vmovdqu	4096(%rdi), %ymm0
        vmovdqu	4128(%rdi), %ymm1
        vmovdqu	4160(%rdi), %ymm2
        vmovdqu	4192(%rdi), %ymm3
        vmovdqu	4224(%rdi), %ymm4
        vmovdqu	4256(%rdi), %ymm5
        vmovdqu	4288(%rdi), %ymm6
        vmovdqu	4320(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 512(%rsi)
        vmovdqu	4352(%rdi), %ymm0
        vmovdqu	4384(%rdi), %ymm1
        vmovdqu	4416(%rdi), %ymm2
        vmovdqu	4448(%rdi), %ymm3
        vmovdqu	4480(%rdi), %ymm4
        vmovdqu	4512(%rdi), %ymm5
        vmovdqu	4544(%rdi), %ymm6
        vmovdqu	4576(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 544(%rsi)
        vmovdqu	4608(%rdi), %ymm0
        vmovdqu	4640(%rdi), %ymm1
        vmovdqu	4672(%rdi), %ymm2
        vmovdqu	4704(%rdi), %ymm3
        vmovdqu	4736(%rdi), %ymm4
        vmovdqu	4768(%rdi), %ymm5
        vmovdqu	4800(%rdi), %ymm6
        vmovdqu	4832(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 576(%rsi)
        vmovdqu	4864(%rdi), %ymm0
        vmovdqu	4896(%rdi), %ymm1
        vmovdqu	4928(%rdi), %ymm2
        vmovdqu	4960(%rdi), %ymm3
        vmovdqu	4992(%rdi), %ymm4
        vmovdqu	5024(%rdi), %ymm5
        vmovdqu	5056(%rdi), %ymm6
        vmovdqu	5088(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 608(%rsi)
        vmovdqu	5120(%rdi), %ymm0
        vmovdqu	5152(%rdi), %ymm1
        vmovdqu	5184(%rdi), %ymm2
        vmovdqu	5216(%rdi), %ymm3
        vmovdqu	5248(%rdi), %ymm4
        vmovdqu	5280(%rdi), %ymm5
        vmovdqu	5312(%rdi), %ymm6
        vmovdqu	5344(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 640(%rsi)
        vmovdqu	5376(%rdi), %ymm0
        vmovdqu	5408(%rdi), %ymm1
        vmovdqu	5440(%rdi), %ymm2
        vmovdqu	5472(%rdi), %ymm3
        vmovdqu	5504(%rdi), %ymm4
        vmovdqu	5536(%rdi), %ymm5
        vmovdqu	5568(%rdi), %ymm6
        vmovdqu	5600(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 672(%rsi)
        vmovdqu	5632(%rdi), %ymm0
        vmovdqu	5664(%rdi), %ymm1
        vmovdqu	5696(%rdi), %ymm2
        vmovdqu	5728(%rdi), %ymm3
        vmovdqu	5760(%rdi), %ymm4
        vmovdqu	5792(%rdi), %ymm5
        vmovdqu	5824(%rdi), %ymm6
        vmovdqu	5856(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 704(%rsi)
        vmovdqu	5888(%rdi), %ymm0
        vmovdqu	5920(%rdi), %ymm1
        vmovdqu	5952(%rdi), %ymm2
        vmovdqu	5984(%rdi), %ymm3
        vmovdqu	6016(%rdi), %ymm4
        vmovdqu	6048(%rdi), %ymm5
        vmovdqu	6080(%rdi), %ymm6
        vmovdqu	6112(%rdi), %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vpsllvd	%ymm9, %ymm0, %ymm0
        vpsllvd	%ymm9, %ymm1, %ymm1
        vpsllvd	%ymm9, %ymm2, %ymm2
        vpsllvd	%ymm9, %ymm3, %ymm3
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpsllvd	%ymm9, %ymm5, %ymm5
        vpsllvd	%ymm9, %ymm6, %ymm6
        vpsllvd	%ymm9, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 736(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_vec_encode_eta_4_avx2,.-wc_mldsa_vec_encode_eta_4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_0:
.byte	0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff
.byte	0x00,0x01,0xff,0xff,0x01,0xff,0xff,0xff
.byte	0x01,0xff,0xff,0xff,0x01,0x02,0xff,0xff
.byte	0x02,0xff,0xff,0xff,0x02,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_1:
.byte	0x01,0xff,0xff,0xff,0x01,0xff,0xff,0xff
.byte	0x01,0x02,0xff,0xff,0x02,0xff,0xff,0xff
.byte	0x02,0xff,0xff,0xff,0x02,0x03,0xff,0xff
.byte	0x03,0xff,0xff,0xff,0x03,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_2:
.byte	0x02,0xff,0xff,0xff,0x02,0xff,0xff,0xff
.byte	0x02,0x03,0xff,0xff,0x03,0xff,0xff,0xff
.byte	0x03,0xff,0xff,0xff,0x03,0x04,0xff,0xff
.byte	0x04,0xff,0xff,0xff,0x04,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_3:
.byte	0x03,0xff,0xff,0xff,0x03,0xff,0xff,0xff
.byte	0x03,0x04,0xff,0xff,0x04,0xff,0xff,0xff
.byte	0x04,0xff,0xff,0xff,0x04,0x05,0xff,0xff
.byte	0x05,0xff,0xff,0xff,0x05,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_4:
.byte	0x04,0xff,0xff,0xff,0x04,0xff,0xff,0xff
.byte	0x04,0x05,0xff,0xff,0x05,0xff,0xff,0xff
.byte	0x05,0xff,0xff,0xff,0x05,0x06,0xff,0xff
.byte	0x06,0xff,0xff,0xff,0x06,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_5:
.byte	0x05,0xff,0xff,0xff,0x05,0xff,0xff,0xff
.byte	0x05,0x06,0xff,0xff,0x06,0xff,0xff,0xff
.byte	0x06,0xff,0xff,0xff,0x06,0x07,0xff,0xff
.byte	0x07,0xff,0xff,0xff,0x07,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_6:
.byte	0x06,0xff,0xff,0xff,0x06,0xff,0xff,0xff
.byte	0x06,0x07,0xff,0xff,0x07,0xff,0xff,0xff
.byte	0x07,0xff,0xff,0xff,0x07,0x08,0xff,0xff
.byte	0x08,0xff,0xff,0xff,0x08,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_shuff_7:
.byte	0x07,0xff,0xff,0xff,0x07,0xff,0xff,0xff
.byte	0x07,0x08,0xff,0xff,0x08,0xff,0xff,0xff
.byte	0x08,0xff,0xff,0xff,0x08,0x09,0xff,0xff
.byte	0x09,0xff,0xff,0xff,0x09,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_two:
.long	0x00000002,0x00000002,0x00000002,0x00000002
.long	0x00000002,0x00000002,0x00000002,0x00000002
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_vs:
.long	0x00000000,0x00000003,0x00000006,0x00000001
.long	0x00000004,0x00000007,0x00000002,0x00000005
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_2_avx2_mask:
.long	0x00000007,0x00000007,0x00000007,0x00000007
.long	0x00000007,0x00000007,0x00000007,0x00000007
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_eta_2_avx2
.type	wc_mldsa_decode_eta_2_avx2,@function
.align	16
wc_mldsa_decode_eta_2_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_eta_2_avx2
.p2align	4
_wc_mldsa_decode_eta_2_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm4, %ymm4, %ymm4
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_0(%rip), %ymm4
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_1(%rip), %ymm5
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_2(%rip), %ymm6
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_3(%rip), %ymm7
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_4(%rip), %ymm8
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_5(%rip), %ymm9
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_6(%rip), %ymm10
        vmovdqu	L_mldsa_decode_eta_2_avx2_shuff_7(%rip), %ymm11
        vmovdqu	L_mldsa_decode_eta_2_avx2_two(%rip), %ymm12
        vmovdqu	L_mldsa_decode_eta_2_avx2_vs(%rip), %ymm13
        vmovdqu	L_mldsa_decode_eta_2_avx2_mask(%rip), %ymm14
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm4, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, (%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm7, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 32(%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm10, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 64(%rsi)
        vpermq	$57, %ymm0, %ymm0
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 96(%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm8, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 128(%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm11, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 160(%rsi)
        vpermq	$57, %ymm0, %ymm0
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 192(%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 224(%rsi)
        vpermq	$57, %ymm0, %ymm0
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm4, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 256(%rsi)
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm7, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 288(%rsi)
        vperm2i128	$32, %ymm1, %ymm0, %ymm0
        vpermq	$56, %ymm0, %ymm0
        vpermq	$0x44, %ymm0, %ymm3
        vpshufb	%ymm10, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 320(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 352(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm8, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 384(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm11, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 416(%rsi)
        vpermq	$57, %ymm1, %ymm1
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 448(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 480(%rsi)
        vpermq	$57, %ymm1, %ymm1
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm4, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 512(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm7, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 544(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm10, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 576(%rsi)
        vpermq	$57, %ymm1, %ymm1
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 608(%rsi)
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm8, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 640(%rsi)
        vperm2i128	$32, %ymm2, %ymm1, %ymm1
        vpermq	$56, %ymm1, %ymm1
        vpermq	$0x44, %ymm1, %ymm3
        vpshufb	%ymm11, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 672(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 704(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 736(%rsi)
        vpermq	$57, %ymm2, %ymm2
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm4, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 768(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm7, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 800(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm10, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 832(%rsi)
        vpermq	$57, %ymm2, %ymm2
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 864(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm8, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 896(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm11, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 928(%rsi)
        vpermq	$57, %ymm2, %ymm2
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 960(%rsi)
        vpermq	$0x44, %ymm2, %ymm3
        vpshufb	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm13, %ymm3, %ymm3
        vpand	%ymm14, %ymm3, %ymm3
        vpsubd	%ymm3, %ymm12, %ymm3
        vmovdqu	%ymm3, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_eta_2_avx2,.-wc_mldsa_decode_eta_2_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_0:
.byte	0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff
.byte	0x00,0x01,0xff,0xff,0x01,0xff,0xff,0xff
.byte	0x01,0xff,0xff,0xff,0x01,0x02,0xff,0xff
.byte	0x02,0xff,0xff,0xff,0x02,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_1:
.byte	0x01,0xff,0xff,0xff,0x01,0xff,0xff,0xff
.byte	0x01,0x02,0xff,0xff,0x02,0xff,0xff,0xff
.byte	0x02,0xff,0xff,0xff,0x02,0x03,0xff,0xff
.byte	0x03,0xff,0xff,0xff,0x03,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_2:
.byte	0x02,0xff,0xff,0xff,0x02,0xff,0xff,0xff
.byte	0x02,0x03,0xff,0xff,0x03,0xff,0xff,0xff
.byte	0x03,0xff,0xff,0xff,0x03,0x04,0xff,0xff
.byte	0x04,0xff,0xff,0xff,0x04,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_3:
.byte	0x03,0xff,0xff,0xff,0x03,0xff,0xff,0xff
.byte	0x03,0x04,0xff,0xff,0x04,0xff,0xff,0xff
.byte	0x04,0xff,0xff,0xff,0x04,0x05,0xff,0xff
.byte	0x05,0xff,0xff,0xff,0x05,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_4:
.byte	0x04,0xff,0xff,0xff,0x04,0xff,0xff,0xff
.byte	0x04,0x05,0xff,0xff,0x05,0xff,0xff,0xff
.byte	0x05,0xff,0xff,0xff,0x05,0x06,0xff,0xff
.byte	0x06,0xff,0xff,0xff,0x06,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_5:
.byte	0x05,0xff,0xff,0xff,0x05,0xff,0xff,0xff
.byte	0x05,0x06,0xff,0xff,0x06,0xff,0xff,0xff
.byte	0x06,0xff,0xff,0xff,0x06,0x07,0xff,0xff
.byte	0x07,0xff,0xff,0xff,0x07,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_6:
.byte	0x06,0xff,0xff,0xff,0x06,0xff,0xff,0xff
.byte	0x06,0x07,0xff,0xff,0x07,0xff,0xff,0xff
.byte	0x07,0xff,0xff,0xff,0x07,0x08,0xff,0xff
.byte	0x08,0xff,0xff,0xff,0x08,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_shuff_7:
.byte	0x07,0xff,0xff,0xff,0x07,0xff,0xff,0xff
.byte	0x07,0x08,0xff,0xff,0x08,0xff,0xff,0xff
.byte	0x08,0xff,0xff,0xff,0x08,0x09,0xff,0xff
.byte	0x09,0xff,0xff,0xff,0x09,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_four:
.long	0x00000004,0x00000004,0x00000004,0x00000004
.long	0x00000004,0x00000004,0x00000004,0x00000004
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_vs:
.long	0x00000000,0x00000004,0x00000008,0x0000000c
.long	0x00000010,0x00000014,0x00000018,0x0000001c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_eta_4_avx2_mask:
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_eta_4_avx2
.type	wc_mldsa_decode_eta_4_avx2,@function
.align	16
wc_mldsa_decode_eta_4_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_eta_4_avx2
.p2align	4
_wc_mldsa_decode_eta_4_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_decode_eta_4_avx2_four(%rip), %ymm8
        vmovdqu	L_mldsa_decode_eta_4_avx2_vs(%rip), %ymm9
        vmovdqu	L_mldsa_decode_eta_4_avx2_mask(%rip), %ymm10
        vpbroadcastd	(%rdi), %ymm0
        vpbroadcastd	4(%rdi), %ymm1
        vpbroadcastd	8(%rdi), %ymm2
        vpbroadcastd	12(%rdi), %ymm3
        vpbroadcastd	16(%rdi), %ymm4
        vpbroadcastd	20(%rdi), %ymm5
        vpbroadcastd	24(%rdi), %ymm6
        vpbroadcastd	28(%rdi), %ymm7
        vpsrlvd	%ymm9, %ymm0, %ymm0
        vpsrlvd	%ymm9, %ymm1, %ymm1
        vpsrlvd	%ymm9, %ymm2, %ymm2
        vpsrlvd	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm5, %ymm5
        vpsrlvd	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm9, %ymm7, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm10, %ymm2, %ymm2
        vpand	%ymm10, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm10, %ymm6, %ymm6
        vpand	%ymm10, %ymm7, %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	%ymm2, 64(%rsi)
        vmovdqu	%ymm3, 96(%rsi)
        vmovdqu	%ymm4, 128(%rsi)
        vmovdqu	%ymm5, 160(%rsi)
        vmovdqu	%ymm6, 192(%rsi)
        vmovdqu	%ymm7, 224(%rsi)
        vpbroadcastd	32(%rdi), %ymm0
        vpbroadcastd	36(%rdi), %ymm1
        vpbroadcastd	40(%rdi), %ymm2
        vpbroadcastd	44(%rdi), %ymm3
        vpbroadcastd	48(%rdi), %ymm4
        vpbroadcastd	52(%rdi), %ymm5
        vpbroadcastd	56(%rdi), %ymm6
        vpbroadcastd	60(%rdi), %ymm7
        vpsrlvd	%ymm9, %ymm0, %ymm0
        vpsrlvd	%ymm9, %ymm1, %ymm1
        vpsrlvd	%ymm9, %ymm2, %ymm2
        vpsrlvd	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm5, %ymm5
        vpsrlvd	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm9, %ymm7, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm10, %ymm2, %ymm2
        vpand	%ymm10, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm10, %ymm6, %ymm6
        vpand	%ymm10, %ymm7, %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	%ymm2, 320(%rsi)
        vmovdqu	%ymm3, 352(%rsi)
        vmovdqu	%ymm4, 384(%rsi)
        vmovdqu	%ymm5, 416(%rsi)
        vmovdqu	%ymm6, 448(%rsi)
        vmovdqu	%ymm7, 480(%rsi)
        vpbroadcastd	64(%rdi), %ymm0
        vpbroadcastd	68(%rdi), %ymm1
        vpbroadcastd	72(%rdi), %ymm2
        vpbroadcastd	76(%rdi), %ymm3
        vpbroadcastd	80(%rdi), %ymm4
        vpbroadcastd	84(%rdi), %ymm5
        vpbroadcastd	88(%rdi), %ymm6
        vpbroadcastd	92(%rdi), %ymm7
        vpsrlvd	%ymm9, %ymm0, %ymm0
        vpsrlvd	%ymm9, %ymm1, %ymm1
        vpsrlvd	%ymm9, %ymm2, %ymm2
        vpsrlvd	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm5, %ymm5
        vpsrlvd	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm9, %ymm7, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm10, %ymm2, %ymm2
        vpand	%ymm10, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm10, %ymm6, %ymm6
        vpand	%ymm10, %ymm7, %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vmovdqu	%ymm0, 512(%rsi)
        vmovdqu	%ymm1, 544(%rsi)
        vmovdqu	%ymm2, 576(%rsi)
        vmovdqu	%ymm3, 608(%rsi)
        vmovdqu	%ymm4, 640(%rsi)
        vmovdqu	%ymm5, 672(%rsi)
        vmovdqu	%ymm6, 704(%rsi)
        vmovdqu	%ymm7, 736(%rsi)
        vpbroadcastd	96(%rdi), %ymm0
        vpbroadcastd	100(%rdi), %ymm1
        vpbroadcastd	104(%rdi), %ymm2
        vpbroadcastd	108(%rdi), %ymm3
        vpbroadcastd	112(%rdi), %ymm4
        vpbroadcastd	116(%rdi), %ymm5
        vpbroadcastd	120(%rdi), %ymm6
        vpbroadcastd	124(%rdi), %ymm7
        vpsrlvd	%ymm9, %ymm0, %ymm0
        vpsrlvd	%ymm9, %ymm1, %ymm1
        vpsrlvd	%ymm9, %ymm2, %ymm2
        vpsrlvd	%ymm9, %ymm3, %ymm3
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm5, %ymm5
        vpsrlvd	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm9, %ymm7, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm10, %ymm2, %ymm2
        vpand	%ymm10, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm10, %ymm6, %ymm6
        vpand	%ymm10, %ymm7, %ymm7
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsubd	%ymm4, %ymm8, %ymm4
        vpsubd	%ymm5, %ymm8, %ymm5
        vpsubd	%ymm6, %ymm8, %ymm6
        vpsubd	%ymm7, %ymm8, %ymm7
        vmovdqu	%ymm0, 768(%rsi)
        vmovdqu	%ymm1, 800(%rsi)
        vmovdqu	%ymm2, 832(%rsi)
        vmovdqu	%ymm3, 864(%rsi)
        vmovdqu	%ymm4, 896(%rsi)
        vmovdqu	%ymm5, 928(%rsi)
        vmovdqu	%ymm6, 960(%rsi)
        vmovdqu	%ymm7, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_eta_4_avx2,.-wc_mldsa_decode_eta_4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_88_avx2_shuff_0_even:
.byte	0x00,0x09,0x0a,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0x00,0x09,0x0a,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_88_avx2_shuff_0_odd:
.byte	0x04,0x05,0x0e,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0x04,0x05,0x0e,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_88_avx2_shuff_1_even:
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x09
.byte	0x0a,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0x00,0x09,0x0a,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_88_avx2_shuff_1_odd:
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x04,0x05
.byte	0x0e,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0x04,0x05,0x0e,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_88_avx2_vs:
.long	0x00000000,0x00000006,0x0000000c,0x00000012
.long	0x00000000,0x00000006,0x0000000c,0x00000012
#ifndef __APPLE__
.text
.globl	wc_mldsa_encode_w1_88_avx2
.type	wc_mldsa_encode_w1_88_avx2,@function
.align	16
wc_mldsa_encode_w1_88_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_encode_w1_88_avx2
.p2align	4
_wc_mldsa_encode_w1_88_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm4, %ymm4, %ymm4
        vmovdqu	L_mldsa_encode_w1_88_avx2_shuff_0_even(%rip), %ymm4
        vmovdqu	L_mldsa_encode_w1_88_avx2_shuff_0_odd(%rip), %ymm5
        vmovdqu	L_mldsa_encode_w1_88_avx2_shuff_1_even(%rip), %ymm6
        vmovdqu	L_mldsa_encode_w1_88_avx2_shuff_1_odd(%rip), %ymm7
        vmovdqu	L_mldsa_encode_w1_88_avx2_vs(%rip), %ymm8
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm0, %ymm2
        vpshufb	%ymm4, %ymm0, %ymm0
        vpshufb	%ymm7, %ymm1, %ymm3
        vpshufb	%ymm6, %ymm1, %ymm1
        vpor	%ymm2, %ymm0, %ymm0
        vpor	%ymm3, %ymm0, %ymm0
        vpor	%ymm1, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm2
        vpor	%ymm2, %ymm0, %ymm0
        vmovq	%xmm0, (%rsi)
        vpextrd	$2, %xmm0, 8(%rsi)
        addq	$12, %rsi
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_encode_w1_88_avx2,.-wc_mldsa_encode_w1_88_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_w1_32_avx2_vs_4:
.long	0x00000000,0x00000004,0x00000000,0x00000004
.long	0x00000000,0x00000004,0x00000000,0x00000004
#ifndef __APPLE__
.text
.globl	wc_mldsa_encode_w1_32_avx2
.type	wc_mldsa_encode_w1_32_avx2,@function
.align	16
wc_mldsa_encode_w1_32_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_encode_w1_32_avx2
.p2align	4
_wc_mldsa_encode_w1_32_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_encode_w1_32_avx2_vs_4(%rip), %ymm8
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpsllvd	%ymm8, %ymm4, %ymm4
        vpsllvd	%ymm8, %ymm5, %ymm5
        vpsllvd	%ymm8, %ymm6, %ymm6
        vpsllvd	%ymm8, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpsllvd	%ymm8, %ymm4, %ymm4
        vpsllvd	%ymm8, %ymm5, %ymm5
        vpsllvd	%ymm8, %ymm6, %ymm6
        vpsllvd	%ymm8, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rsi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpsllvd	%ymm8, %ymm4, %ymm4
        vpsllvd	%ymm8, %ymm5, %ymm5
        vpsllvd	%ymm8, %ymm6, %ymm6
        vpsllvd	%ymm8, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vpsllvd	%ymm8, %ymm0, %ymm0
        vpsllvd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpsllvd	%ymm8, %ymm4, %ymm4
        vpsllvd	%ymm8, %ymm5, %ymm5
        vpsllvd	%ymm8, %ymm6, %ymm6
        vpsllvd	%ymm8, %ymm7, %ymm7
        vpackusdw	%ymm1, %ymm0, %ymm0
        vpackusdw	%ymm3, %ymm2, %ymm1
        vpackusdw	%ymm5, %ymm4, %ymm2
        vpackusdw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpermq	$0xd8, %ymm2, %ymm2
        vpermq	$0xd8, %ymm3, %ymm3
        vphaddw	%ymm1, %ymm0, %ymm0
        vphaddw	%ymm3, %ymm2, %ymm1
        vphaddw	%ymm5, %ymm4, %ymm2
        vphaddw	%ymm7, %ymm6, %ymm3
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpermq	$0xd8, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_encode_w1_32_avx2,.-wc_mldsa_encode_w1_32_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_d_max_half_m1:
.long	0x00000fff,0x00000fff,0x00000fff,0x00000fff
.long	0x00000fff,0x00000fff,0x00000fff,0x00000fff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_d_max_half:
.long	0x00001000,0x00001000,0x00001000,0x00001000
.long	0x00001000,0x00001000,0x00001000,0x00001000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_vs_13:
.long	0x00000000,0x0000000d,0x00000002,0x0000000f
.long	0x00000004,0x00000011,0x00000006,0x00000013
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_shuff_13_even:
.byte	0x00,0x01,0xff,0x08,0x09,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x01
.byte	0x02,0x08,0x09,0x0a,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_shuff_13_odd:
.byte	0xff,0x05,0x06,0x07,0x0d,0x0e,0x0f,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x06,0x07,0xff,0x0e,0x0f,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_vs_10:
.long	0x00000000,0x0000000a,0x00000004,0x0000000e
.long	0x00000000,0x0000000a,0x00000004,0x0000000e
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_shuff_10_even:
.byte	0x00,0x01,0x08,0x09,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0x00,0x01,0x08
.byte	0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_t0_t1_avx2_shuff_10_odd:
.byte	0xff,0x05,0x06,0x0d,0x0e,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0x05,0x06
.byte	0x0d,0x0e,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.text
.globl	wc_mldsa_vec_encode_t0_t1_avx2
.type	wc_mldsa_vec_encode_t0_t1_avx2,@function
.align	16
wc_mldsa_vec_encode_t0_t1_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_vec_encode_t0_t1_avx2
.p2align	4
_wc_mldsa_vec_encode_t0_t1_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_encode_t0_t1_avx2_d_max_half_m1(%rip), %ymm6
        vmovdqu	L_mldsa_encode_t0_t1_avx2_d_max_half(%rip), %ymm7
        vmovdqu	L_mldsa_encode_t0_t1_avx2_vs_13(%rip), %ymm8
        vmovdqu	L_mldsa_encode_t0_t1_avx2_shuff_13_even(%rip), %ymm9
        vmovdqu	L_mldsa_encode_t0_t1_avx2_shuff_13_odd(%rip), %ymm10
        vmovdqu	L_mldsa_encode_t0_t1_avx2_vs_10(%rip), %ymm11
        vmovdqu	L_mldsa_encode_t0_t1_avx2_shuff_10_even(%rip), %ymm12
        vmovdqu	L_mldsa_encode_t0_t1_avx2_shuff_10_odd(%rip), %ymm13
L_mldsa_encode_t0_t1_avx2_loop:
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpaddd	%ymm6, %ymm0, %ymm4
        vpaddd	%ymm6, %ymm1, %ymm5
        vpsrld	$13, %ymm4, %ymm4
        vpsrld	$13, %ymm5, %ymm5
        vpslld	$13, %ymm4, %ymm2
        vpslld	$13, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm7, %ymm2
        vpsubd	%ymm3, %ymm7, %ymm3
        vpsllvd	%ymm8, %ymm2, %ymm2
        vpsllvd	%ymm8, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm2, %ymm0
        vpshufb	%ymm10, %ymm3, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vextracti128	$0x01, %ymm2, %xmm0
        vextracti128	$0x01, %ymm3, %xmm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	%xmm2, (%rdx)
        addq	$13, %rdx
        vmovdqu	%xmm3, (%rdx)
        addq	$13, %rdx
        vpsllvd	%ymm11, %ymm4, %ymm4
        vpsllvd	%ymm11, %ymm5, %ymm5
        vpshufb	%ymm13, %ymm4, %ymm0
        vpshufb	%ymm13, %ymm5, %ymm1
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vextracti128	$0x01, %ymm4, %xmm0
        vextracti128	$0x01, %ymm5, %xmm1
        vpor	%ymm0, %ymm4, %ymm4
        vpor	%ymm1, %ymm5, %ymm5
        vmovdqu	%xmm4, (%rcx)
        addq	$10, %rcx
        vmovdqu	%xmm5, (%rcx)
        addq	$10, %rcx
        addq	$0x400, %rdi
        decb	%sil
        jnz	L_mldsa_encode_t0_t1_avx2_loop
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_vec_encode_t0_t1_avx2,.-wc_mldsa_vec_encode_t0_t1_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_0:
.byte	0x00,0x01,0xff,0xff,0xff,0x01,0x02,0x03
.byte	0x03,0x04,0x05,0xff,0x04,0x05,0x06,0x07
.byte	0x06,0x07,0x08,0xff,0xff,0x08,0x09,0xff
.byte	0x09,0x0a,0x0b,0xff,0xff,0xff,0x0b,0x0c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_1:
.byte	0x05,0x06,0xff,0xff,0xff,0x06,0x07,0x08
.byte	0x08,0x09,0xff,0xff,0x09,0x0a,0x0b,0xff
.byte	0x03,0x04,0x05,0xff,0xff,0x05,0x06,0xff
.byte	0x06,0x07,0x08,0xff,0xff,0xff,0x08,0x09
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_2:
.byte	0x02,0x03,0xff,0xff,0xff,0x03,0x04,0x05
.byte	0x05,0x06,0xff,0xff,0x06,0x07,0x08,0xff
.byte	0x00,0x01,0x02,0xff,0xff,0x02,0x03,0xff
.byte	0x03,0x04,0x05,0xff,0xff,0xff,0x05,0x06
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_3:
.byte	0x07,0x08,0xff,0xff,0xff,0x08,0x09,0x0a
.byte	0x0a,0x0b,0xff,0xff,0x0b,0x0c,0x0d,0xff
.byte	0x05,0x06,0x07,0xff,0xff,0x07,0x08,0xff
.byte	0x08,0x09,0x0a,0xff,0xff,0xff,0x0a,0x0b
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_4:
.byte	0x04,0x05,0xff,0xff,0xff,0x05,0x06,0x07
.byte	0x07,0x08,0xff,0xff,0x08,0x09,0x0a,0xff
.byte	0x02,0x03,0x04,0xff,0xff,0x04,0x05,0xff
.byte	0x05,0x06,0x07,0xff,0xff,0xff,0x07,0x08
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_5:
.byte	0x01,0x02,0xff,0xff,0xff,0x02,0x03,0x04
.byte	0x04,0x05,0xff,0xff,0x05,0x06,0x07,0xff
.byte	0x07,0x08,0x09,0xff,0xff,0x09,0x0a,0xff
.byte	0x0a,0x0b,0x0c,0xff,0xff,0xff,0x0c,0x0d
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_6:
.byte	0x06,0x07,0xff,0xff,0xff,0x07,0x08,0x09
.byte	0x09,0x0a,0xff,0xff,0x0a,0x0b,0x0c,0xff
.byte	0x04,0x05,0x06,0xff,0xff,0x06,0x07,0x08
.byte	0x07,0x08,0x09,0xff,0xff,0xff,0x09,0x0a
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_shuff_7:
.byte	0x03,0x04,0xff,0xff,0xff,0x04,0x05,0x06
.byte	0x06,0x07,0xff,0xff,0x07,0x08,0x09,0xff
.byte	0x01,0x02,0x03,0xff,0xff,0x03,0x04,0xff
.byte	0x04,0x05,0x06,0xff,0xff,0xff,0x06,0x07
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_vs_8:
.long	0x00000000,0x0000000d,0x00000002,0x00000007
.long	0x00000004,0x00000009,0x00000006,0x00000013
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_mask:
.long	0x00001fff,0x00001fff,0x00001fff,0x00001fff
.long	0x00001fff,0x00001fff,0x00001fff,0x00001fff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t0_avx2_d_max_half:
.long	0x00001000,0x00001000,0x00001000,0x00001000
.long	0x00001000,0x00001000,0x00001000,0x00001000
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_t0_avx2
.type	wc_mldsa_decode_t0_avx2,@function
.align	16
wc_mldsa_decode_t0_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_t0_avx2
.p2align	4
_wc_mldsa_decode_t0_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm5, %ymm5, %ymm5
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_0(%rip), %ymm5
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_1(%rip), %ymm6
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_2(%rip), %ymm7
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_3(%rip), %ymm8
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_4(%rip), %ymm9
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_5(%rip), %ymm10
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_6(%rip), %ymm11
        vmovdqu	L_mldsa_decode_t0_avx2_shuff_7(%rip), %ymm12
        vmovdqu	L_mldsa_decode_t0_avx2_vs_8(%rip), %ymm13
        vmovdqu	L_mldsa_decode_t0_avx2_mask(%rip), %ymm14
        vmovdqu	L_mldsa_decode_t0_avx2_d_max_half(%rip), %ymm15
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        # 1/32
        vpermq	$0x44, %ymm0, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, (%rsi)
        # 2/32
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 32(%rsi)
        # 3/32
        vperm2i128	$0x21, %ymm1, %ymm0, %ymm0
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 64(%rsi)
        # 4/32
        vpermq	$0x94, %ymm1, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 96(%rsi)
        # 5/32
        vperm2i128	$0x21, %ymm2, %ymm1, %ymm1
        vpermq	$0x94, %ymm1, %ymm4
        vpshufb	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 128(%rsi)
        # 6/32
        vpermq	$0x44, %ymm2, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 160(%rsi)
        # 7/32
        vpermq	$0xe9, %ymm2, %ymm4
        vpshufb	%ymm11, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 192(%rsi)
        # 8/32
        vperm2i128	$0x21, %ymm3, %ymm2, %ymm2
        vpermq	$0xe9, %ymm2, %ymm4
        vpshufb	%ymm12, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 224(%rsi)
        # 9/32
        vpermq	$0x99, %ymm3, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 256(%rsi)
        # 10/32
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vperm2i128	$0x21, %ymm0, %ymm3, %ymm3
        vpermq	$0x94, %ymm3, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 288(%rsi)
        # 11/32
        vpermq	$0x94, %ymm0, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 320(%rsi)
        # 12/32
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 352(%rsi)
        # 13/32
        vperm2i128	$0x21, %ymm1, %ymm0, %ymm0
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 384(%rsi)
        # 14/32
        vpermq	$0x99, %ymm1, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 416(%rsi)
        # 15/32
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vperm2i128	$0x21, %ymm2, %ymm1, %ymm1
        vpermq	$0x94, %ymm1, %ymm4
        vpshufb	%ymm11, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 448(%rsi)
        # 16/32
        vpermq	$0x94, %ymm2, %ymm4
        vpshufb	%ymm12, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 480(%rsi)
        # 17/32
        vpermq	$0xee, %ymm2, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 512(%rsi)
        # 18/32
        vperm2i128	$0x21, %ymm3, %ymm2, %ymm2
        vpermq	$0xe9, %ymm2, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 544(%rsi)
        # 19/32
        vpermq	$0xe9, %ymm3, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 576(%rsi)
        # 20/32
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vperm2i128	$0x21, %ymm0, %ymm3, %ymm3
        vpermq	$0x94, %ymm3, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 608(%rsi)
        # 21/32
        vpermq	$0x94, %ymm0, %ymm4
        vpshufb	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 640(%rsi)
        # 22/32
        vpermq	$0xee, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 672(%rsi)
        # 23/32
        vperm2i128	$0x21, %ymm1, %ymm0, %ymm0
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm11, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 704(%rsi)
        # 24/32
        vpermq	$0xe9, %ymm1, %ymm4
        vpshufb	%ymm12, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 736(%rsi)
        # 25/32
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vperm2i128	$0x21, %ymm2, %ymm1, %ymm1
        vpermq	$0x99, %ymm1, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 768(%rsi)
        # 26/32
        vpermq	$0x94, %ymm2, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 800(%rsi)
        # 27/32
        vpermq	$0x3e, %ymm2, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 832(%rsi)
        # 28/32
        vperm2i128	$0x21, %ymm3, %ymm2, %ymm2
        vpermq	$0xe9, %ymm2, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 864(%rsi)
        # 29/32
        vpermq	$0xe9, %ymm3, %ymm4
        vpshufb	%ymm9, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 896(%rsi)
        # 30/32
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vperm2i128	$0x21, %ymm0, %ymm3, %ymm3
        vpermq	$0x99, %ymm3, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 928(%rsi)
        # 31/32
        vpermq	$0x94, %ymm0, %ymm4
        vpshufb	%ymm11, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 960(%rsi)
        # 32/32
        vpermq	$0x3e, %ymm0, %ymm4
        vpshufb	%ymm12, %ymm4, %ymm4
        vpsrlvd	%ymm13, %ymm4, %ymm4
        vpand	%ymm14, %ymm4, %ymm4
        vpsubd	%ymm4, %ymm15, %ymm4
        vmovdqu	%ymm4, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_t0_avx2,.-wc_mldsa_decode_t0_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_shuff_0:
.byte	0x00,0x01,0xff,0xff,0xff,0x01,0x02,0xff
.byte	0x02,0x03,0xff,0xff,0xff,0x03,0x04,0xff
.byte	0x05,0x06,0xff,0xff,0xff,0x06,0x07,0xff
.byte	0x07,0x08,0xff,0xff,0xff,0x08,0x09,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_shuff_1:
.byte	0x02,0x03,0xff,0xff,0xff,0x03,0x04,0xff
.byte	0x04,0x05,0xff,0xff,0xff,0x05,0x06,0xff
.byte	0x07,0x08,0xff,0xff,0xff,0x08,0x09,0xff
.byte	0x09,0x0a,0x08,0xff,0xff,0x0a,0x0b,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_shuff_2:
.byte	0x04,0x05,0xff,0xff,0xff,0x05,0x06,0xff
.byte	0x06,0x07,0xff,0xff,0xff,0x07,0x08,0xff
.byte	0x01,0x02,0xff,0xff,0xff,0x02,0x03,0xff
.byte	0x03,0x04,0xff,0xff,0xff,0x04,0x05,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_shuff_3:
.byte	0x06,0x07,0xff,0xff,0xff,0x07,0x08,0xff
.byte	0x08,0x09,0xff,0xff,0xff,0x09,0x0a,0xff
.byte	0x03,0x04,0xff,0xff,0xff,0x04,0x05,0xff
.byte	0x05,0x06,0xff,0xff,0xff,0x06,0x07,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_vs_8:
.long	0x00000000,0x0000000a,0x00000004,0x0000000e
.long	0x00000000,0x0000000a,0x00000004,0x0000000e
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_t1_avx2_mask:
.long	0x000003ff,0x000003ff,0x000003ff,0x000003ff
.long	0x000003ff,0x000003ff,0x000003ff,0x000003ff
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_t1_avx2
.type	wc_mldsa_decode_t1_avx2,@function
.align	16
wc_mldsa_decode_t1_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_t1_avx2
.p2align	4
_wc_mldsa_decode_t1_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm5, %ymm5, %ymm5
        vmovdqu	L_mldsa_decode_t1_avx2_shuff_0(%rip), %ymm5
        vmovdqu	L_mldsa_decode_t1_avx2_shuff_1(%rip), %ymm6
        vmovdqu	L_mldsa_decode_t1_avx2_shuff_2(%rip), %ymm7
        vmovdqu	L_mldsa_decode_t1_avx2_shuff_3(%rip), %ymm8
        vmovdqu	L_mldsa_decode_t1_avx2_vs_8(%rip), %ymm9
        vmovdqu	L_mldsa_decode_t1_avx2_mask(%rip), %ymm10
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        # 1/32
        vpermq	$0x44, %ymm0, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, (%rsi)
        # 2/32
        vpermq	$0x99, %ymm0, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 32(%rsi)
        # 3/32
        vpermq	$0x3e, %ymm0, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 64(%rsi)
        # 4/32
        vperm2i128	$0x21, %ymm1, %ymm0, %ymm0
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 96(%rsi)
        # 5/32
        vpermq	$0x99, %ymm1, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 128(%rsi)
        # 6/32
        vpermq	$0xee, %ymm1, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 160(%rsi)
        # 7/32
        vperm2i128	$0x21, %ymm2, %ymm1, %ymm1
        vpermq	$0xe9, %ymm1, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 192(%rsi)
        # 8/32
        vpermq	$0x94, %ymm2, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 224(%rsi)
        # 9/32
        vpermq	$0xee, %ymm2, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 256(%rsi)
        # 10/32
        vperm2i128	$0x21, %ymm3, %ymm2, %ymm2
        vpermq	$0x99, %ymm2, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 288(%rsi)
        # 11/32
        vpermq	$0x94, %ymm3, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 320(%rsi)
        # 12/32
        vpermq	$0xe9, %ymm3, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 352(%rsi)
        # 13/32
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vperm2i128	$0x21, %ymm0, %ymm3, %ymm3
        vpermq	$0x99, %ymm3, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 384(%rsi)
        # 14/32
        vpermq	$0x44, %ymm0, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 416(%rsi)
        # 15/32
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 448(%rsi)
        # 16/32
        vpermq	$0x3e, %ymm0, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 480(%rsi)
        # 17/32
        vpermq	$0x44, %ymm1, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 512(%rsi)
        # 18/32
        vpermq	$0x99, %ymm1, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 544(%rsi)
        # 19/32
        vpermq	$0x3e, %ymm1, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 576(%rsi)
        # 20/32
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vperm2i128	$0x21, %ymm2, %ymm1, %ymm1
        vpermq	$0xe9, %ymm1, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 608(%rsi)
        # 21/32
        vpermq	$0x99, %ymm2, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 640(%rsi)
        # 22/32
        vpermq	$0xee, %ymm2, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 672(%rsi)
        # 23/32
        vperm2i128	$0x21, %ymm3, %ymm2, %ymm2
        vpermq	$0xe9, %ymm2, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 704(%rsi)
        # 24/32
        vpermq	$0x94, %ymm3, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 736(%rsi)
        # 25/32
        vpermq	$0xee, %ymm3, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 768(%rsi)
        # 26/32
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vperm2i128	$0x21, %ymm0, %ymm3, %ymm3
        vpermq	$0x99, %ymm3, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 800(%rsi)
        # 27/32
        vpermq	$0x94, %ymm0, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 832(%rsi)
        # 28/32
        vpermq	$0xe9, %ymm0, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 864(%rsi)
        # 29/32
        vperm2i128	$0x21, %ymm1, %ymm0, %ymm0
        vpermq	$0x99, %ymm0, %ymm4
        vpshufb	%ymm5, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 896(%rsi)
        # 30/32
        vpermq	$0x44, %ymm1, %ymm4
        vpshufb	%ymm6, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 928(%rsi)
        # 31/32
        vpermq	$0xe9, %ymm1, %ymm4
        vpshufb	%ymm7, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 960(%rsi)
        # 32/32
        vpermq	$0x3e, %ymm1, %ymm4
        vpshufb	%ymm8, %ymm4, %ymm4
        vpsrlvd	%ymm9, %ymm4, %ymm4
        vpand	%ymm10, %ymm4, %ymm4
        vpslld	$13, %ymm4, %ymm4
        vmovdqu	%ymm4, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_t1_avx2,.-wc_mldsa_decode_t1_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_shuff_0:
.byte	0x00,0x01,0x02,0xff,0x02,0x03,0x04,0xff
.byte	0x04,0x05,0x06,0xff,0x06,0x07,0x08,0xff
.byte	0xff,0x01,0x02,0x03,0xff,0x03,0x04,0x05
.byte	0xff,0x05,0x06,0x07,0xff,0x07,0x08,0x09
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_shuff_1:
.byte	0x02,0x03,0x04,0xff,0x04,0x05,0x06,0xff
.byte	0x06,0x07,0x08,0xff,0x08,0x09,0x0a,0xff
.byte	0xff,0x03,0x04,0x05,0xff,0x05,0x06,0x07
.byte	0xff,0x07,0x08,0x09,0xff,0x09,0x0a,0x0b
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_shuff_2:
.byte	0x04,0x05,0x06,0xff,0x06,0x07,0x08,0xff
.byte	0x08,0x09,0x0a,0xff,0x0a,0x0b,0x0c,0xff
.byte	0xff,0x05,0x06,0x07,0xff,0x07,0x08,0x09
.byte	0xff,0x09,0x0a,0x0b,0xff,0x0b,0x0c,0x0d
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_shuff_3:
.byte	0x06,0x07,0x08,0xff,0x08,0x09,0x0a,0xff
.byte	0x0a,0x0b,0x0c,0xff,0x0c,0x0d,0x0e,0xff
.byte	0xff,0x07,0x08,0x09,0xff,0x09,0x0a,0x0b
.byte	0xff,0x0b,0x0c,0x0d,0xff,0x0d,0x0e,0x0f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_vs_8:
.long	0x00000000,0x00000002,0x00000004,0x00000006
.long	0x00000008,0x0000000a,0x0000000c,0x0000000e
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_mask:
.long	0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff
.long	0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_17_avx2_gamma17:
.long	0x00020000,0x00020000,0x00020000,0x00020000
.long	0x00020000,0x00020000,0x00020000,0x00020000
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_gamma1_17_avx2
.type	wc_mldsa_decode_gamma1_17_avx2,@function
.align	16
wc_mldsa_decode_gamma1_17_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_gamma1_17_avx2
.p2align	4
_wc_mldsa_decode_gamma1_17_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_shuff_0(%rip), %ymm7
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_shuff_1(%rip), %ymm8
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_shuff_2(%rip), %ymm9
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_shuff_3(%rip), %ymm10
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_vs_8(%rip), %ymm11
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_mask(%rip), %ymm12
        vmovdqu	L_mldsa_decode_gamma1_17_avx2_gamma17(%rip), %ymm13
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        # 0/15
        vpermq	$0x94, %ymm0, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, (%rsi)
        # 1/15
        vperm2i128	$33, %ymm1, %ymm0, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 32(%rsi)
        # 2/15
        vpermq	$0x94, %ymm1, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 64(%rsi)
        # 3/15
        vperm2i128	$33, %ymm2, %ymm1, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 96(%rsi)
        # 4/15
        vpermq	$0xe9, %ymm2, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 128(%rsi)
        # 5/15
        vperm2i128	$33, %ymm3, %ymm2, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 160(%rsi)
        # 6/15
        vpermq	$0xe9, %ymm3, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 192(%rsi)
        # 7/15
        vperm2i128	$33, %ymm4, %ymm3, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 224(%rsi)
        # 8/15
        vperm2i128	$33, %ymm5, %ymm4, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 256(%rsi)
        # 9/15
        vpermq	$0x94, %ymm5, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 288(%rsi)
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vmovdqu	256(%rdi), %ymm2
        # 10/15
        vperm2i128	$33, %ymm0, %ymm5, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 320(%rsi)
        # 11/15
        vpermq	$0x94, %ymm0, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 352(%rsi)
        # 12/15
        vperm2i128	$33, %ymm1, %ymm0, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 384(%rsi)
        # 13/15
        vpermq	$0xe9, %ymm1, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 416(%rsi)
        # 14/15
        vperm2i128	$33, %ymm2, %ymm1, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 448(%rsi)
        # 15/15
        vpermq	$0xe9, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 480(%rsi)
        vmovdqu	288(%rdi), %ymm0
        vmovdqu	320(%rdi), %ymm1
        vmovdqu	352(%rdi), %ymm2
        vmovdqu	384(%rdi), %ymm3
        vmovdqu	416(%rdi), %ymm4
        vmovdqu	448(%rdi), %ymm5
        # 0/15
        vpermq	$0x94, %ymm0, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 512(%rsi)
        # 1/15
        vperm2i128	$33, %ymm1, %ymm0, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 544(%rsi)
        # 2/15
        vpermq	$0x94, %ymm1, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 576(%rsi)
        # 3/15
        vperm2i128	$33, %ymm2, %ymm1, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 608(%rsi)
        # 4/15
        vpermq	$0xe9, %ymm2, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 640(%rsi)
        # 5/15
        vperm2i128	$33, %ymm3, %ymm2, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 672(%rsi)
        # 6/15
        vpermq	$0xe9, %ymm3, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 704(%rsi)
        # 7/15
        vperm2i128	$33, %ymm4, %ymm3, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 736(%rsi)
        # 8/15
        vperm2i128	$33, %ymm5, %ymm4, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 768(%rsi)
        # 9/15
        vpermq	$0x94, %ymm5, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 800(%rsi)
        vmovdqu	480(%rdi), %ymm0
        vmovdqu	512(%rdi), %ymm1
        vmovdqu	544(%rdi), %ymm2
        # 10/15
        vperm2i128	$33, %ymm0, %ymm5, %ymm6
        vpermq	$0x94, %ymm6, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 832(%rsi)
        # 11/15
        vpermq	$0x94, %ymm0, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 864(%rsi)
        # 12/15
        vperm2i128	$33, %ymm1, %ymm0, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm7, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 896(%rsi)
        # 13/15
        vpermq	$0xe9, %ymm1, %ymm6
        vpshufb	%ymm8, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 928(%rsi)
        # 14/15
        vperm2i128	$33, %ymm2, %ymm1, %ymm6
        vpermq	$0xe9, %ymm6, %ymm6
        vpshufb	%ymm9, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 960(%rsi)
        # 15/15
        vpermq	$0xe9, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm6, %ymm6
        vpsrlvd	%ymm11, %ymm6, %ymm6
        vpand	%ymm12, %ymm6, %ymm6
        vpsubd	%ymm6, %ymm13, %ymm6
        vmovdqu	%ymm6, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_gamma1_17_avx2,.-wc_mldsa_decode_gamma1_17_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_20_avx2_shuff_0:
.byte	0x00,0x01,0x02,0xff,0x02,0x03,0x04,0xff
.byte	0x05,0x06,0x07,0xff,0x07,0x08,0x09,0xff
.byte	0xff,0x02,0x03,0x04,0xff,0x04,0x05,0x06
.byte	0xff,0x07,0x08,0x09,0xff,0x09,0x0a,0x0b
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_20_avx2_shuff_1:
.byte	0x04,0x05,0x06,0xff,0x06,0x07,0x08,0xff
.byte	0x09,0x0a,0x0b,0xff,0x0b,0x0c,0x0d,0xff
.byte	0xff,0x06,0x07,0x08,0xff,0x08,0x09,0x0a
.byte	0xff,0x0b,0x0c,0x0d,0xff,0x0d,0x0e,0x0f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_20_avx2_vs_8:
.long	0x00000000,0x00000004,0x00000000,0x00000004
.long	0x00000008,0x0000000c,0x00000008,0x0000000c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_20_avx2_mask:
.long	0x000fffff,0x000fffff,0x000fffff,0x000fffff
.long	0x000fffff,0x000fffff,0x000fffff,0x000fffff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decode_gamma1_20_avx2_gamma19:
.long	0x00080000,0x00080000,0x00080000,0x00080000
.long	0x00080000,0x00080000,0x00080000,0x00080000
#ifndef __APPLE__
.text
.globl	wc_mldsa_decode_gamma1_19_avx2
.type	wc_mldsa_decode_gamma1_19_avx2,@function
.align	16
wc_mldsa_decode_gamma1_19_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decode_gamma1_19_avx2
.p2align	4
_wc_mldsa_decode_gamma1_19_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_decode_gamma1_20_avx2_shuff_0(%rip), %ymm6
        vmovdqu	L_mldsa_decode_gamma1_20_avx2_shuff_1(%rip), %ymm7
        vmovdqu	L_mldsa_decode_gamma1_20_avx2_vs_8(%rip), %ymm8
        vmovdqu	L_mldsa_decode_gamma1_20_avx2_mask(%rip), %ymm9
        vmovdqu	L_mldsa_decode_gamma1_20_avx2_gamma19(%rip), %ymm10
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        # 0/7
        vpermq	$0x94, %ymm0, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, (%rsi)
        # 1/7
        vperm2i128	$33, %ymm1, %ymm0, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 32(%rsi)
        # 2/7
        vpermq	$0xe9, %ymm1, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 64(%rsi)
        # 3/7
        vperm2i128	$33, %ymm2, %ymm1, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 96(%rsi)
        # 4/7
        vperm2i128	$33, %ymm3, %ymm2, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 128(%rsi)
        # 5/7
        vpermq	$0x94, %ymm3, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 160(%rsi)
        # 6/7
        vperm2i128	$33, %ymm4, %ymm3, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 192(%rsi)
        # 7/7
        vpermq	$0xe9, %ymm4, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 224(%rsi)
        vmovdqu	160(%rdi), %ymm0
        vmovdqu	192(%rdi), %ymm1
        vmovdqu	224(%rdi), %ymm2
        vmovdqu	256(%rdi), %ymm3
        vmovdqu	288(%rdi), %ymm4
        # 0/7
        vpermq	$0x94, %ymm0, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 256(%rsi)
        # 1/7
        vperm2i128	$33, %ymm1, %ymm0, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 288(%rsi)
        # 2/7
        vpermq	$0xe9, %ymm1, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 320(%rsi)
        # 3/7
        vperm2i128	$33, %ymm2, %ymm1, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 352(%rsi)
        # 4/7
        vperm2i128	$33, %ymm3, %ymm2, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 384(%rsi)
        # 5/7
        vpermq	$0x94, %ymm3, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 416(%rsi)
        # 6/7
        vperm2i128	$33, %ymm4, %ymm3, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 448(%rsi)
        # 7/7
        vpermq	$0xe9, %ymm4, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 480(%rsi)
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vmovdqu	448(%rdi), %ymm4
        # 0/7
        vpermq	$0x94, %ymm0, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 512(%rsi)
        # 1/7
        vperm2i128	$33, %ymm1, %ymm0, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 544(%rsi)
        # 2/7
        vpermq	$0xe9, %ymm1, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 576(%rsi)
        # 3/7
        vperm2i128	$33, %ymm2, %ymm1, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 608(%rsi)
        # 4/7
        vperm2i128	$33, %ymm3, %ymm2, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 640(%rsi)
        # 5/7
        vpermq	$0x94, %ymm3, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 672(%rsi)
        # 6/7
        vperm2i128	$33, %ymm4, %ymm3, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 704(%rsi)
        # 7/7
        vpermq	$0xe9, %ymm4, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 736(%rsi)
        vmovdqu	480(%rdi), %ymm0
        vmovdqu	512(%rdi), %ymm1
        vmovdqu	544(%rdi), %ymm2
        vmovdqu	576(%rdi), %ymm3
        vmovdqu	608(%rdi), %ymm4
        # 0/7
        vpermq	$0x94, %ymm0, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 768(%rsi)
        # 1/7
        vperm2i128	$33, %ymm1, %ymm0, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 800(%rsi)
        # 2/7
        vpermq	$0xe9, %ymm1, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 832(%rsi)
        # 3/7
        vperm2i128	$33, %ymm2, %ymm1, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 864(%rsi)
        # 4/7
        vperm2i128	$33, %ymm3, %ymm2, %ymm5
        vpermq	$0x94, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 896(%rsi)
        # 5/7
        vpermq	$0x94, %ymm3, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 928(%rsi)
        # 6/7
        vperm2i128	$33, %ymm4, %ymm3, %ymm5
        vpermq	$0xe9, %ymm5, %ymm5
        vpshufb	%ymm6, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 960(%rsi)
        # 7/7
        vpermq	$0xe9, %ymm4, %ymm5
        vpshufb	%ymm7, %ymm5, %ymm5
        vpsrlvd	%ymm8, %ymm5, %ymm5
        vpand	%ymm9, %ymm5, %ymm5
        vpsubd	%ymm5, %ymm10, %ymm5
        vmovdqu	%ymm5, 992(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decode_gamma1_19_avx2,.-wc_mldsa_decode_gamma1_19_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_17_avx2_gamma17:
.long	0x00020000,0x00020000,0x00020000,0x00020000
.long	0x00020000,0x00020000,0x00020000,0x00020000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_17_avx2_shuff_even:
.byte	0x00,0x01,0x02,0xff,0x08,0x09,0x0a,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x00,0x01,0x02,0xff,0x08,0x09,0x0a,0xff
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_17_avx2_shuff_odd:
.byte	0xff,0xff,0x04,0x05,0x06,0xff,0x0c,0x0d
.byte	0x0e,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0x04,0x05,0x06,0xff,0x0c,0x0d
.byte	0x0e,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_17_avx2_vs:
.long	0x00000000,0x00000002,0x00000004,0x00000006
.long	0x00000000,0x00000002,0x00000004,0x00000006
#ifndef __APPLE__
.text
.globl	wc_mldsa_encode_gamma1_17_avx2
.type	wc_mldsa_encode_gamma1_17_avx2,@function
.align	16
wc_mldsa_encode_gamma1_17_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_encode_gamma1_17_avx2
.p2align	4
_wc_mldsa_encode_gamma1_17_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_encode_gamma1_17_avx2_gamma17(%rip), %ymm8
        vmovdqu	L_mldsa_encode_gamma1_17_avx2_shuff_even(%rip), %ymm9
        vmovdqu	L_mldsa_encode_gamma1_17_avx2_shuff_odd(%rip), %ymm10
        vmovdqu	L_mldsa_encode_gamma1_17_avx2_vs(%rip), %ymm11
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrb	$8, %xmm0, 8(%rsi)
        movq	%xmm4, 9(%rsi)
        vpextrb	$8, %xmm4, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm1, (%rsi)
        vpextrb	$8, %xmm1, 8(%rsi)
        movq	%xmm5, 9(%rsi)
        vpextrb	$8, %xmm5, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm2, (%rsi)
        vpextrb	$8, %xmm2, 8(%rsi)
        movq	%xmm6, 9(%rsi)
        vpextrb	$8, %xmm6, 17(%rsi)
        addq	$18, %rsi
        movq	%xmm3, (%rsi)
        vpextrb	$8, %xmm3, 8(%rsi)
        movq	%xmm7, 9(%rsi)
        vpextrb	$8, %xmm7, 17(%rsi)
        addq	$18, %rsi
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_encode_gamma1_17_avx2,.-wc_mldsa_encode_gamma1_17_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_19_avx2_gamma19:
.long	0x00080000,0x00080000,0x00080000,0x00080000
.long	0x00080000,0x00080000,0x00080000,0x00080000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_19_avx2_shuff_even:
.byte	0x00,0x01,0x02,0xff,0xff,0x08,0x09,0x0a
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x00,0x01,0x02,0xff,0xff,0x08,0x09,0x0a
.byte	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_19_avx2_shuff_odd:
.byte	0xff,0xff,0x04,0x05,0x06,0xff,0xff,0x0c
.byte	0x0d,0x0e,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0x04,0x05,0x06,0xff,0xff,0x0c
.byte	0x0d,0x0e,0xff,0xff,0xff,0xff,0xff,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_encode_gamma1_19_avx2_vs:
.long	0x00000000,0x00000004,0x00000000,0x00000004
.long	0x00000000,0x00000004,0x00000000,0x00000004
#ifndef __APPLE__
.text
.globl	wc_mldsa_encode_gamma1_19_avx2
.type	wc_mldsa_encode_gamma1_19_avx2,@function
.align	16
wc_mldsa_encode_gamma1_19_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_encode_gamma1_19_avx2
.p2align	4
_wc_mldsa_encode_gamma1_19_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_encode_gamma1_19_avx2_gamma19(%rip), %ymm8
        vmovdqu	L_mldsa_encode_gamma1_19_avx2_shuff_even(%rip), %ymm9
        vmovdqu	L_mldsa_encode_gamma1_19_avx2_shuff_odd(%rip), %ymm10
        vmovdqu	L_mldsa_encode_gamma1_19_avx2_vs(%rip), %ymm11
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpsubd	%ymm0, %ymm8, %ymm0
        vpsubd	%ymm1, %ymm8, %ymm1
        vpsubd	%ymm2, %ymm8, %ymm2
        vpsubd	%ymm3, %ymm8, %ymm3
        vpsllvd	%ymm11, %ymm0, %ymm0
        vpsllvd	%ymm11, %ymm1, %ymm1
        vpsllvd	%ymm11, %ymm2, %ymm2
        vpsllvd	%ymm11, %ymm3, %ymm3
        vpshufb	%ymm10, %ymm0, %ymm4
        vpshufb	%ymm10, %ymm1, %ymm5
        vpshufb	%ymm10, %ymm2, %ymm6
        vpshufb	%ymm10, %ymm3, %ymm7
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpshufb	%ymm9, %ymm2, %ymm2
        vpshufb	%ymm9, %ymm3, %ymm3
        vpor	%ymm4, %ymm0, %ymm0
        vpor	%ymm5, %ymm1, %ymm1
        vpor	%ymm6, %ymm2, %ymm2
        vpor	%ymm7, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm4
        vextracti128	$0x01, %ymm1, %xmm5
        vextracti128	$0x01, %ymm2, %xmm6
        vextracti128	$0x01, %ymm3, %xmm7
        movq	%xmm0, (%rsi)
        vpextrw	$4, %xmm0, 8(%rsi)
        movq	%xmm4, 10(%rsi)
        vpextrw	$4, %xmm4, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm1, (%rsi)
        vpextrw	$4, %xmm1, 8(%rsi)
        movq	%xmm5, 10(%rsi)
        vpextrw	$4, %xmm5, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm2, (%rsi)
        vpextrw	$4, %xmm2, 8(%rsi)
        movq	%xmm6, 10(%rsi)
        vpextrw	$4, %xmm6, 18(%rsi)
        addq	$20, %rsi
        movq	%xmm3, (%rsi)
        vpextrw	$4, %xmm3, 8(%rsi)
        movq	%xmm7, 10(%rsi)
        vpextrw	$4, %xmm7, 18(%rsi)
        addq	$20, %rsi
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_encode_gamma1_19_avx2,.-wc_mldsa_encode_gamma1_19_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q88_avx2_q_low_88:
.long	0x00017400,0x00017400,0x00017400,0x00017400
.long	0x00017400,0x00017400,0x00017400,0x00017400
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q88_avx2_q_low_88_2:
.long	0x0002e800,0x0002e800,0x0002e800,0x0002e800
.long	0x0002e800,0x0002e800,0x0002e800,0x0002e800
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q88_avx2_q_2:
.long	0x003fefd4,0x003fefd4,0x003fefd4,0x003fefd4
.long	0x003fefd4,0x003fefd4,0x003fefd4,0x003fefd4
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q88_avx2_44:
.long	0x0000002c,0x0000002c,0x0000002c,0x0000002c
.long	0x0000002c,0x0000002c,0x0000002c,0x0000002c
#ifndef __APPLE__
.text
.globl	wc_mldsa_decompose_q88_avx2
.type	wc_mldsa_decompose_q88_avx2,@function
.align	16
wc_mldsa_decompose_q88_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decompose_q88_avx2
.p2align	4
_wc_mldsa_decompose_q88_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_decompose_q88_avx2_q_low_88(%rip), %ymm12
        vmovdqu	L_mldsa_decompose_q88_avx2_q_low_88_2(%rip), %ymm13
        vmovdqu	L_mldsa_decompose_q88_avx2_q_2(%rip), %ymm14
        vmovdqu	L_mldsa_decompose_q88_avx2_44(%rip), %ymm15
        # 1/4 vectors
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, (%rsi)
        vmovdqu	%ymm5, 32(%rsi)
        vmovdqu	%ymm6, 64(%rsi)
        vmovdqu	%ymm7, 96(%rsi)
        vmovdqu	%ymm8, (%rdx)
        vmovdqu	%ymm9, 32(%rdx)
        vmovdqu	%ymm10, 64(%rdx)
        vmovdqu	%ymm11, 96(%rdx)
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 128(%rsi)
        vmovdqu	%ymm5, 160(%rsi)
        vmovdqu	%ymm6, 192(%rsi)
        vmovdqu	%ymm7, 224(%rsi)
        vmovdqu	%ymm8, 128(%rdx)
        vmovdqu	%ymm9, 160(%rdx)
        vmovdqu	%ymm10, 192(%rdx)
        vmovdqu	%ymm11, 224(%rdx)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 256(%rsi)
        vmovdqu	%ymm5, 288(%rsi)
        vmovdqu	%ymm6, 320(%rsi)
        vmovdqu	%ymm7, 352(%rsi)
        vmovdqu	%ymm8, 256(%rdx)
        vmovdqu	%ymm9, 288(%rdx)
        vmovdqu	%ymm10, 320(%rdx)
        vmovdqu	%ymm11, 352(%rdx)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 384(%rsi)
        vmovdqu	%ymm5, 416(%rsi)
        vmovdqu	%ymm6, 448(%rsi)
        vmovdqu	%ymm7, 480(%rsi)
        vmovdqu	%ymm8, 384(%rdx)
        vmovdqu	%ymm9, 416(%rdx)
        vmovdqu	%ymm10, 448(%rdx)
        vmovdqu	%ymm11, 480(%rdx)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 512(%rsi)
        vmovdqu	%ymm5, 544(%rsi)
        vmovdqu	%ymm6, 576(%rsi)
        vmovdqu	%ymm7, 608(%rsi)
        vmovdqu	%ymm8, 512(%rdx)
        vmovdqu	%ymm9, 544(%rdx)
        vmovdqu	%ymm10, 576(%rdx)
        vmovdqu	%ymm11, 608(%rdx)
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 640(%rsi)
        vmovdqu	%ymm5, 672(%rsi)
        vmovdqu	%ymm6, 704(%rsi)
        vmovdqu	%ymm7, 736(%rsi)
        vmovdqu	%ymm8, 640(%rdx)
        vmovdqu	%ymm9, 672(%rdx)
        vmovdqu	%ymm10, 704(%rdx)
        vmovdqu	%ymm11, 736(%rdx)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 768(%rsi)
        vmovdqu	%ymm5, 800(%rsi)
        vmovdqu	%ymm6, 832(%rsi)
        vmovdqu	%ymm7, 864(%rsi)
        vmovdqu	%ymm8, 768(%rdx)
        vmovdqu	%ymm9, 800(%rdx)
        vmovdqu	%ymm10, 832(%rdx)
        vmovdqu	%ymm11, 864(%rdx)
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 896(%rsi)
        vmovdqu	%ymm5, 928(%rsi)
        vmovdqu	%ymm6, 960(%rsi)
        vmovdqu	%ymm7, 992(%rsi)
        vmovdqu	%ymm8, 896(%rdx)
        vmovdqu	%ymm9, 928(%rdx)
        vmovdqu	%ymm10, 960(%rdx)
        vmovdqu	%ymm11, 992(%rdx)
        # 2/4 vectors
        vmovdqu	1024(%rdi), %ymm0
        vmovdqu	1056(%rdi), %ymm1
        vmovdqu	1088(%rdi), %ymm2
        vmovdqu	1120(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1024(%rsi)
        vmovdqu	%ymm5, 1056(%rsi)
        vmovdqu	%ymm6, 1088(%rsi)
        vmovdqu	%ymm7, 1120(%rsi)
        vmovdqu	%ymm8, 1024(%rdx)
        vmovdqu	%ymm9, 1056(%rdx)
        vmovdqu	%ymm10, 1088(%rdx)
        vmovdqu	%ymm11, 1120(%rdx)
        vmovdqu	1152(%rdi), %ymm0
        vmovdqu	1184(%rdi), %ymm1
        vmovdqu	1216(%rdi), %ymm2
        vmovdqu	1248(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1152(%rsi)
        vmovdqu	%ymm5, 1184(%rsi)
        vmovdqu	%ymm6, 1216(%rsi)
        vmovdqu	%ymm7, 1248(%rsi)
        vmovdqu	%ymm8, 1152(%rdx)
        vmovdqu	%ymm9, 1184(%rdx)
        vmovdqu	%ymm10, 1216(%rdx)
        vmovdqu	%ymm11, 1248(%rdx)
        vmovdqu	1280(%rdi), %ymm0
        vmovdqu	1312(%rdi), %ymm1
        vmovdqu	1344(%rdi), %ymm2
        vmovdqu	1376(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1280(%rsi)
        vmovdqu	%ymm5, 1312(%rsi)
        vmovdqu	%ymm6, 1344(%rsi)
        vmovdqu	%ymm7, 1376(%rsi)
        vmovdqu	%ymm8, 1280(%rdx)
        vmovdqu	%ymm9, 1312(%rdx)
        vmovdqu	%ymm10, 1344(%rdx)
        vmovdqu	%ymm11, 1376(%rdx)
        vmovdqu	1408(%rdi), %ymm0
        vmovdqu	1440(%rdi), %ymm1
        vmovdqu	1472(%rdi), %ymm2
        vmovdqu	1504(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1408(%rsi)
        vmovdqu	%ymm5, 1440(%rsi)
        vmovdqu	%ymm6, 1472(%rsi)
        vmovdqu	%ymm7, 1504(%rsi)
        vmovdqu	%ymm8, 1408(%rdx)
        vmovdqu	%ymm9, 1440(%rdx)
        vmovdqu	%ymm10, 1472(%rdx)
        vmovdqu	%ymm11, 1504(%rdx)
        vmovdqu	1536(%rdi), %ymm0
        vmovdqu	1568(%rdi), %ymm1
        vmovdqu	1600(%rdi), %ymm2
        vmovdqu	1632(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1536(%rsi)
        vmovdqu	%ymm5, 1568(%rsi)
        vmovdqu	%ymm6, 1600(%rsi)
        vmovdqu	%ymm7, 1632(%rsi)
        vmovdqu	%ymm8, 1536(%rdx)
        vmovdqu	%ymm9, 1568(%rdx)
        vmovdqu	%ymm10, 1600(%rdx)
        vmovdqu	%ymm11, 1632(%rdx)
        vmovdqu	1664(%rdi), %ymm0
        vmovdqu	1696(%rdi), %ymm1
        vmovdqu	1728(%rdi), %ymm2
        vmovdqu	1760(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1664(%rsi)
        vmovdqu	%ymm5, 1696(%rsi)
        vmovdqu	%ymm6, 1728(%rsi)
        vmovdqu	%ymm7, 1760(%rsi)
        vmovdqu	%ymm8, 1664(%rdx)
        vmovdqu	%ymm9, 1696(%rdx)
        vmovdqu	%ymm10, 1728(%rdx)
        vmovdqu	%ymm11, 1760(%rdx)
        vmovdqu	1792(%rdi), %ymm0
        vmovdqu	1824(%rdi), %ymm1
        vmovdqu	1856(%rdi), %ymm2
        vmovdqu	1888(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1792(%rsi)
        vmovdqu	%ymm5, 1824(%rsi)
        vmovdqu	%ymm6, 1856(%rsi)
        vmovdqu	%ymm7, 1888(%rsi)
        vmovdqu	%ymm8, 1792(%rdx)
        vmovdqu	%ymm9, 1824(%rdx)
        vmovdqu	%ymm10, 1856(%rdx)
        vmovdqu	%ymm11, 1888(%rdx)
        vmovdqu	1920(%rdi), %ymm0
        vmovdqu	1952(%rdi), %ymm1
        vmovdqu	1984(%rdi), %ymm2
        vmovdqu	2016(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 1920(%rsi)
        vmovdqu	%ymm5, 1952(%rsi)
        vmovdqu	%ymm6, 1984(%rsi)
        vmovdqu	%ymm7, 2016(%rsi)
        vmovdqu	%ymm8, 1920(%rdx)
        vmovdqu	%ymm9, 1952(%rdx)
        vmovdqu	%ymm10, 1984(%rdx)
        vmovdqu	%ymm11, 2016(%rdx)
        # 3/4 vectors
        vmovdqu	2048(%rdi), %ymm0
        vmovdqu	2080(%rdi), %ymm1
        vmovdqu	2112(%rdi), %ymm2
        vmovdqu	2144(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2048(%rsi)
        vmovdqu	%ymm5, 2080(%rsi)
        vmovdqu	%ymm6, 2112(%rsi)
        vmovdqu	%ymm7, 2144(%rsi)
        vmovdqu	%ymm8, 2048(%rdx)
        vmovdqu	%ymm9, 2080(%rdx)
        vmovdqu	%ymm10, 2112(%rdx)
        vmovdqu	%ymm11, 2144(%rdx)
        vmovdqu	2176(%rdi), %ymm0
        vmovdqu	2208(%rdi), %ymm1
        vmovdqu	2240(%rdi), %ymm2
        vmovdqu	2272(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2176(%rsi)
        vmovdqu	%ymm5, 2208(%rsi)
        vmovdqu	%ymm6, 2240(%rsi)
        vmovdqu	%ymm7, 2272(%rsi)
        vmovdqu	%ymm8, 2176(%rdx)
        vmovdqu	%ymm9, 2208(%rdx)
        vmovdqu	%ymm10, 2240(%rdx)
        vmovdqu	%ymm11, 2272(%rdx)
        vmovdqu	2304(%rdi), %ymm0
        vmovdqu	2336(%rdi), %ymm1
        vmovdqu	2368(%rdi), %ymm2
        vmovdqu	2400(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2304(%rsi)
        vmovdqu	%ymm5, 2336(%rsi)
        vmovdqu	%ymm6, 2368(%rsi)
        vmovdqu	%ymm7, 2400(%rsi)
        vmovdqu	%ymm8, 2304(%rdx)
        vmovdqu	%ymm9, 2336(%rdx)
        vmovdqu	%ymm10, 2368(%rdx)
        vmovdqu	%ymm11, 2400(%rdx)
        vmovdqu	2432(%rdi), %ymm0
        vmovdqu	2464(%rdi), %ymm1
        vmovdqu	2496(%rdi), %ymm2
        vmovdqu	2528(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2432(%rsi)
        vmovdqu	%ymm5, 2464(%rsi)
        vmovdqu	%ymm6, 2496(%rsi)
        vmovdqu	%ymm7, 2528(%rsi)
        vmovdqu	%ymm8, 2432(%rdx)
        vmovdqu	%ymm9, 2464(%rdx)
        vmovdqu	%ymm10, 2496(%rdx)
        vmovdqu	%ymm11, 2528(%rdx)
        vmovdqu	2560(%rdi), %ymm0
        vmovdqu	2592(%rdi), %ymm1
        vmovdqu	2624(%rdi), %ymm2
        vmovdqu	2656(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2560(%rsi)
        vmovdqu	%ymm5, 2592(%rsi)
        vmovdqu	%ymm6, 2624(%rsi)
        vmovdqu	%ymm7, 2656(%rsi)
        vmovdqu	%ymm8, 2560(%rdx)
        vmovdqu	%ymm9, 2592(%rdx)
        vmovdqu	%ymm10, 2624(%rdx)
        vmovdqu	%ymm11, 2656(%rdx)
        vmovdqu	2688(%rdi), %ymm0
        vmovdqu	2720(%rdi), %ymm1
        vmovdqu	2752(%rdi), %ymm2
        vmovdqu	2784(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2688(%rsi)
        vmovdqu	%ymm5, 2720(%rsi)
        vmovdqu	%ymm6, 2752(%rsi)
        vmovdqu	%ymm7, 2784(%rsi)
        vmovdqu	%ymm8, 2688(%rdx)
        vmovdqu	%ymm9, 2720(%rdx)
        vmovdqu	%ymm10, 2752(%rdx)
        vmovdqu	%ymm11, 2784(%rdx)
        vmovdqu	2816(%rdi), %ymm0
        vmovdqu	2848(%rdi), %ymm1
        vmovdqu	2880(%rdi), %ymm2
        vmovdqu	2912(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2816(%rsi)
        vmovdqu	%ymm5, 2848(%rsi)
        vmovdqu	%ymm6, 2880(%rsi)
        vmovdqu	%ymm7, 2912(%rsi)
        vmovdqu	%ymm8, 2816(%rdx)
        vmovdqu	%ymm9, 2848(%rdx)
        vmovdqu	%ymm10, 2880(%rdx)
        vmovdqu	%ymm11, 2912(%rdx)
        vmovdqu	2944(%rdi), %ymm0
        vmovdqu	2976(%rdi), %ymm1
        vmovdqu	3008(%rdi), %ymm2
        vmovdqu	3040(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 2944(%rsi)
        vmovdqu	%ymm5, 2976(%rsi)
        vmovdqu	%ymm6, 3008(%rsi)
        vmovdqu	%ymm7, 3040(%rsi)
        vmovdqu	%ymm8, 2944(%rdx)
        vmovdqu	%ymm9, 2976(%rdx)
        vmovdqu	%ymm10, 3008(%rdx)
        vmovdqu	%ymm11, 3040(%rdx)
        # 4/4 vectors
        vmovdqu	3072(%rdi), %ymm0
        vmovdqu	3104(%rdi), %ymm1
        vmovdqu	3136(%rdi), %ymm2
        vmovdqu	3168(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3072(%rsi)
        vmovdqu	%ymm5, 3104(%rsi)
        vmovdqu	%ymm6, 3136(%rsi)
        vmovdqu	%ymm7, 3168(%rsi)
        vmovdqu	%ymm8, 3072(%rdx)
        vmovdqu	%ymm9, 3104(%rdx)
        vmovdqu	%ymm10, 3136(%rdx)
        vmovdqu	%ymm11, 3168(%rdx)
        vmovdqu	3200(%rdi), %ymm0
        vmovdqu	3232(%rdi), %ymm1
        vmovdqu	3264(%rdi), %ymm2
        vmovdqu	3296(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3200(%rsi)
        vmovdqu	%ymm5, 3232(%rsi)
        vmovdqu	%ymm6, 3264(%rsi)
        vmovdqu	%ymm7, 3296(%rsi)
        vmovdqu	%ymm8, 3200(%rdx)
        vmovdqu	%ymm9, 3232(%rdx)
        vmovdqu	%ymm10, 3264(%rdx)
        vmovdqu	%ymm11, 3296(%rdx)
        vmovdqu	3328(%rdi), %ymm0
        vmovdqu	3360(%rdi), %ymm1
        vmovdqu	3392(%rdi), %ymm2
        vmovdqu	3424(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3328(%rsi)
        vmovdqu	%ymm5, 3360(%rsi)
        vmovdqu	%ymm6, 3392(%rsi)
        vmovdqu	%ymm7, 3424(%rsi)
        vmovdqu	%ymm8, 3328(%rdx)
        vmovdqu	%ymm9, 3360(%rdx)
        vmovdqu	%ymm10, 3392(%rdx)
        vmovdqu	%ymm11, 3424(%rdx)
        vmovdqu	3456(%rdi), %ymm0
        vmovdqu	3488(%rdi), %ymm1
        vmovdqu	3520(%rdi), %ymm2
        vmovdqu	3552(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3456(%rsi)
        vmovdqu	%ymm5, 3488(%rsi)
        vmovdqu	%ymm6, 3520(%rsi)
        vmovdqu	%ymm7, 3552(%rsi)
        vmovdqu	%ymm8, 3456(%rdx)
        vmovdqu	%ymm9, 3488(%rdx)
        vmovdqu	%ymm10, 3520(%rdx)
        vmovdqu	%ymm11, 3552(%rdx)
        vmovdqu	3584(%rdi), %ymm0
        vmovdqu	3616(%rdi), %ymm1
        vmovdqu	3648(%rdi), %ymm2
        vmovdqu	3680(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3584(%rsi)
        vmovdqu	%ymm5, 3616(%rsi)
        vmovdqu	%ymm6, 3648(%rsi)
        vmovdqu	%ymm7, 3680(%rsi)
        vmovdqu	%ymm8, 3584(%rdx)
        vmovdqu	%ymm9, 3616(%rdx)
        vmovdqu	%ymm10, 3648(%rdx)
        vmovdqu	%ymm11, 3680(%rdx)
        vmovdqu	3712(%rdi), %ymm0
        vmovdqu	3744(%rdi), %ymm1
        vmovdqu	3776(%rdi), %ymm2
        vmovdqu	3808(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3712(%rsi)
        vmovdqu	%ymm5, 3744(%rsi)
        vmovdqu	%ymm6, 3776(%rsi)
        vmovdqu	%ymm7, 3808(%rsi)
        vmovdqu	%ymm8, 3712(%rdx)
        vmovdqu	%ymm9, 3744(%rdx)
        vmovdqu	%ymm10, 3776(%rdx)
        vmovdqu	%ymm11, 3808(%rdx)
        vmovdqu	3840(%rdi), %ymm0
        vmovdqu	3872(%rdi), %ymm1
        vmovdqu	3904(%rdi), %ymm2
        vmovdqu	3936(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3840(%rsi)
        vmovdqu	%ymm5, 3872(%rsi)
        vmovdqu	%ymm6, 3904(%rsi)
        vmovdqu	%ymm7, 3936(%rsi)
        vmovdqu	%ymm8, 3840(%rdx)
        vmovdqu	%ymm9, 3872(%rdx)
        vmovdqu	%ymm10, 3904(%rdx)
        vmovdqu	%ymm11, 3936(%rdx)
        vmovdqu	3968(%rdi), %ymm0
        vmovdqu	4000(%rdi), %ymm1
        vmovdqu	4032(%rdi), %ymm2
        vmovdqu	4064(%rdi), %ymm3
        vpmulld	%ymm15, %ymm0, %ymm8
        vpmulld	%ymm15, %ymm1, %ymm9
        vpmulld	%ymm15, %ymm2, %ymm10
        vpmulld	%ymm15, %ymm3, %ymm11
        vpaddd	%ymm14, %ymm8, %ymm8
        vpaddd	%ymm14, %ymm9, %ymm9
        vpaddd	%ymm14, %ymm10, %ymm10
        vpaddd	%ymm14, %ymm11, %ymm11
        vpsrld	$23, %ymm8, %ymm8
        vpsrld	$23, %ymm9, %ymm9
        vpsrld	$23, %ymm10, %ymm10
        vpsrld	$23, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpcmpeqd	%ymm15, %ymm8, %ymm0
        vpcmpeqd	%ymm15, %ymm9, %ymm1
        vpcmpeqd	%ymm15, %ymm10, %ymm2
        vpcmpeqd	%ymm15, %ymm11, %ymm3
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm6, %ymm6
        vpaddd	%ymm3, %ymm7, %ymm7
        vpcmpgtd	%ymm8, %ymm15, %ymm0
        vpcmpgtd	%ymm9, %ymm15, %ymm1
        vpcmpgtd	%ymm10, %ymm15, %ymm2
        vpcmpgtd	%ymm11, %ymm15, %ymm3
        vpand	%ymm0, %ymm8, %ymm8
        vpand	%ymm1, %ymm9, %ymm9
        vpand	%ymm2, %ymm10, %ymm10
        vpand	%ymm3, %ymm11, %ymm11
        vmovdqu	%ymm4, 3968(%rsi)
        vmovdqu	%ymm5, 4000(%rsi)
        vmovdqu	%ymm6, 4032(%rsi)
        vmovdqu	%ymm7, 4064(%rsi)
        vmovdqu	%ymm8, 3968(%rdx)
        vmovdqu	%ymm9, 4000(%rdx)
        vmovdqu	%ymm10, 4032(%rdx)
        vmovdqu	%ymm11, 4064(%rdx)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decompose_q88_avx2,.-wc_mldsa_decompose_q88_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q32_avx2_q_low_32:
.long	0x0003ff00,0x0003ff00,0x0003ff00,0x0003ff00
.long	0x0003ff00,0x0003ff00,0x0003ff00,0x0003ff00
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q32_avx2_q_low_32_2:
.long	0x0007fe00,0x0007fe00,0x0007fe00,0x0007fe00
.long	0x0007fe00,0x0007fe00,0x0007fe00,0x0007fe00
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q32_avx2_q_low_32_m1:
.long	0x0003feff,0x0003feff,0x0003feff,0x0003feff
.long	0x0003feff,0x0003feff,0x0003feff,0x0003feff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_decompose_q32_avx2_mask:
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
#ifndef __APPLE__
.text
.globl	wc_mldsa_decompose_q32_avx2
.type	wc_mldsa_decompose_q32_avx2,@function
.align	16
wc_mldsa_decompose_q32_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_decompose_q32_avx2
.p2align	4
_wc_mldsa_decompose_q32_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mldsa_decompose_q32_avx2_q_low_32(%rip), %ymm12
        vmovdqu	L_mldsa_decompose_q32_avx2_q_low_32_2(%rip), %ymm13
        vmovdqu	L_mldsa_decompose_q32_avx2_q_low_32_m1(%rip), %ymm14
        vmovdqu	L_mldsa_decompose_q32_avx2_mask(%rip), %ymm15
L_mldsa_decompose_q32_avx2_start_256:
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, (%rdx)
        vmovdqu	%ymm5, 32(%rdx)
        vmovdqu	%ymm6, 64(%rdx)
        vmovdqu	%ymm7, 96(%rdx)
        vmovdqu	%ymm8, (%rcx)
        vmovdqu	%ymm9, 32(%rcx)
        vmovdqu	%ymm10, 64(%rcx)
        vmovdqu	%ymm11, 96(%rcx)
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 128(%rdx)
        vmovdqu	%ymm5, 160(%rdx)
        vmovdqu	%ymm6, 192(%rdx)
        vmovdqu	%ymm7, 224(%rdx)
        vmovdqu	%ymm8, 128(%rcx)
        vmovdqu	%ymm9, 160(%rcx)
        vmovdqu	%ymm10, 192(%rcx)
        vmovdqu	%ymm11, 224(%rcx)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 256(%rdx)
        vmovdqu	%ymm5, 288(%rdx)
        vmovdqu	%ymm6, 320(%rdx)
        vmovdqu	%ymm7, 352(%rdx)
        vmovdqu	%ymm8, 256(%rcx)
        vmovdqu	%ymm9, 288(%rcx)
        vmovdqu	%ymm10, 320(%rcx)
        vmovdqu	%ymm11, 352(%rcx)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 384(%rdx)
        vmovdqu	%ymm5, 416(%rdx)
        vmovdqu	%ymm6, 448(%rdx)
        vmovdqu	%ymm7, 480(%rdx)
        vmovdqu	%ymm8, 384(%rcx)
        vmovdqu	%ymm9, 416(%rcx)
        vmovdqu	%ymm10, 448(%rcx)
        vmovdqu	%ymm11, 480(%rcx)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 512(%rdx)
        vmovdqu	%ymm5, 544(%rdx)
        vmovdqu	%ymm6, 576(%rdx)
        vmovdqu	%ymm7, 608(%rdx)
        vmovdqu	%ymm8, 512(%rcx)
        vmovdqu	%ymm9, 544(%rcx)
        vmovdqu	%ymm10, 576(%rcx)
        vmovdqu	%ymm11, 608(%rcx)
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 640(%rdx)
        vmovdqu	%ymm5, 672(%rdx)
        vmovdqu	%ymm6, 704(%rdx)
        vmovdqu	%ymm7, 736(%rdx)
        vmovdqu	%ymm8, 640(%rcx)
        vmovdqu	%ymm9, 672(%rcx)
        vmovdqu	%ymm10, 704(%rcx)
        vmovdqu	%ymm11, 736(%rcx)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 768(%rdx)
        vmovdqu	%ymm5, 800(%rdx)
        vmovdqu	%ymm6, 832(%rdx)
        vmovdqu	%ymm7, 864(%rdx)
        vmovdqu	%ymm8, 768(%rcx)
        vmovdqu	%ymm9, 800(%rcx)
        vmovdqu	%ymm10, 832(%rcx)
        vmovdqu	%ymm11, 864(%rcx)
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpaddd	%ymm14, %ymm0, %ymm8
        vpaddd	%ymm14, %ymm1, %ymm9
        vpaddd	%ymm14, %ymm2, %ymm10
        vpaddd	%ymm14, %ymm3, %ymm11
        vpsrld	$19, %ymm8, %ymm8
        vpsrld	$19, %ymm9, %ymm9
        vpsrld	$19, %ymm10, %ymm10
        vpsrld	$19, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsubd	%ymm4, %ymm12, %ymm4
        vpsubd	%ymm5, %ymm12, %ymm5
        vpsubd	%ymm6, %ymm12, %ymm6
        vpsubd	%ymm7, %ymm12, %ymm7
        vpsrld	$31, %ymm4, %ymm4
        vpsrld	$31, %ymm5, %ymm5
        vpsrld	$31, %ymm6, %ymm6
        vpsrld	$31, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm8, %ymm8
        vpaddd	%ymm5, %ymm9, %ymm9
        vpaddd	%ymm6, %ymm10, %ymm10
        vpaddd	%ymm7, %ymm11, %ymm11
        vpmulld	%ymm13, %ymm8, %ymm4
        vpmulld	%ymm13, %ymm9, %ymm5
        vpmulld	%ymm13, %ymm10, %ymm6
        vpmulld	%ymm13, %ymm11, %ymm7
        vpsubd	%ymm4, %ymm0, %ymm4
        vpsubd	%ymm5, %ymm1, %ymm5
        vpsubd	%ymm6, %ymm2, %ymm6
        vpsubd	%ymm7, %ymm3, %ymm7
        vpsrld	$4, %ymm8, %ymm0
        vpsrld	$4, %ymm9, %ymm1
        vpsrld	$4, %ymm10, %ymm2
        vpsrld	$4, %ymm11, %ymm3
        vpsubd	%ymm0, %ymm4, %ymm4
        vpsubd	%ymm1, %ymm5, %ymm5
        vpsubd	%ymm2, %ymm6, %ymm6
        vpsubd	%ymm3, %ymm7, %ymm7
        vpand	%ymm15, %ymm8, %ymm8
        vpand	%ymm15, %ymm9, %ymm9
        vpand	%ymm15, %ymm10, %ymm10
        vpand	%ymm15, %ymm11, %ymm11
        vmovdqu	%ymm4, 896(%rdx)
        vmovdqu	%ymm5, 928(%rdx)
        vmovdqu	%ymm6, 960(%rdx)
        vmovdqu	%ymm7, 992(%rdx)
        vmovdqu	%ymm8, 896(%rcx)
        vmovdqu	%ymm9, 928(%rcx)
        vmovdqu	%ymm10, 960(%rcx)
        vmovdqu	%ymm11, 992(%rcx)
        addq	$0x400, %rdi
        addq	$0x400, %rdx
        addq	$0x400, %rcx
        sub	$0x01, %rsi
        jne	L_mldsa_decompose_q32_avx2_start_256
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_decompose_q32_avx2,.-wc_mldsa_decompose_q32_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_q:
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_q_low_88:
.long	0x00017400,0x00017400,0x00017400,0x00017400
.long	0x00017400,0x00017400,0x00017400,0x00017400
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_q_low_88_2:
.long	0x0002e800,0x0002e800,0x0002e800,0x0002e800
.long	0x0002e800,0x0002e800,0x0002e800,0x0002e800
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_q_2:
.long	0x003fefd4,0x003fefd4,0x003fefd4,0x003fefd4
.long	0x003fefd4,0x003fefd4,0x003fefd4,0x003fefd4
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_44:
.long	0x0000002c,0x0000002c,0x0000002c,0x0000002c
.long	0x0000002c,0x0000002c,0x0000002c,0x0000002c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_vsl:
.long	0x0000001f,0x0000001e,0x0000001d,0x0000001c
.long	0x0000001b,0x0000001a,0x00000019,0x00000018
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_88_avx2_one:
.long	0x00000001,0x00000001,0x00000001,0x00000001
.long	0x00000001,0x00000001,0x00000001,0x00000001
#ifndef __APPLE__
.text
.globl	wc_mldsa_use_hint_88_avx2
.type	wc_mldsa_use_hint_88_avx2,@function
.align	16
wc_mldsa_use_hint_88_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_use_hint_88_avx2
.p2align	4
_wc_mldsa_use_hint_88_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_use_hint_88_avx2_q(%rip), %ymm8
        vmovdqu	L_mldsa_use_hint_88_avx2_q_low_88(%rip), %ymm9
        vmovdqu	L_mldsa_use_hint_88_avx2_q_low_88_2(%rip), %ymm10
        vmovdqu	L_mldsa_use_hint_88_avx2_q_2(%rip), %ymm11
        vmovdqu	L_mldsa_use_hint_88_avx2_44(%rip), %ymm12
        vmovdqu	L_mldsa_use_hint_88_avx2_vsl(%rip), %ymm13
        vmovdqu	L_mldsa_use_hint_88_avx2_one(%rip), %ymm14
        xorq	%rax, %rax
        mov	(%rsi), %r8b
        # 1/4 vectors
        mov	80(%rsi), %dl
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_0:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_0
        mov	%r8b, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_0
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_0
L_mldsa_use_hint_88_avx2_hints_done_0_0:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, (%rdi)
        vmovdqu	%ymm5, 32(%rdi)
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_1:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_1
        mov	%r8b, %cl
        sub	$16, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_1
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_1
L_mldsa_use_hint_88_avx2_hints_done_0_1:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 64(%rdi)
        vmovdqu	%ymm5, 96(%rdi)
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_2:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_2
        mov	%r8b, %cl
        sub	$32, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_2
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_2
L_mldsa_use_hint_88_avx2_hints_done_0_2:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_3:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_3
        mov	%r8b, %cl
        sub	$48, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_3
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_3
L_mldsa_use_hint_88_avx2_hints_done_0_3:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 192(%rdi)
        vmovdqu	%ymm5, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_4:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_4
        mov	%r8b, %cl
        sub	$0x40, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_4
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_4
L_mldsa_use_hint_88_avx2_hints_done_0_4:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 256(%rdi)
        vmovdqu	%ymm5, 288(%rdi)
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_5:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_5
        mov	%r8b, %cl
        sub	$0x50, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_5
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_5
L_mldsa_use_hint_88_avx2_hints_done_0_5:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 320(%rdi)
        vmovdqu	%ymm5, 352(%rdi)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_6:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_6
        mov	%r8b, %cl
        sub	$0x60, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_6
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_6
L_mldsa_use_hint_88_avx2_hints_done_0_6:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_7:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_7
        mov	%r8b, %cl
        sub	$0x70, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_7
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_7
L_mldsa_use_hint_88_avx2_hints_done_0_7:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 448(%rdi)
        vmovdqu	%ymm5, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_8:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_8
        mov	%r8b, %cl
        sub	$0x80, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_8
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_8
L_mldsa_use_hint_88_avx2_hints_done_0_8:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 544(%rdi)
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_9:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_9
        mov	%r8b, %cl
        sub	$0x90, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_9
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_9
L_mldsa_use_hint_88_avx2_hints_done_0_9:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 608(%rdi)
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_10:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_10
        mov	%r8b, %cl
        sub	$0xa0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_10
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_10
L_mldsa_use_hint_88_avx2_hints_done_0_10:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_11:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_11
        mov	%r8b, %cl
        sub	$0xb0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_11
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_11
L_mldsa_use_hint_88_avx2_hints_done_0_11:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 704(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_12:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_12
        mov	%r8b, %cl
        sub	$0xc0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_12
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_12
L_mldsa_use_hint_88_avx2_hints_done_0_12:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 768(%rdi)
        vmovdqu	%ymm5, 800(%rdi)
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_13:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_13
        mov	%r8b, %cl
        sub	$0xd0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_13
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_13
L_mldsa_use_hint_88_avx2_hints_done_0_13:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 832(%rdi)
        vmovdqu	%ymm5, 864(%rdi)
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_14:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_14
        mov	%r8b, %cl
        sub	$0xe0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_14
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_14
L_mldsa_use_hint_88_avx2_hints_done_0_14:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_0_15:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_15
        mov	%r8b, %cl
        sub	$0xf0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_0_15
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_0_15
L_mldsa_use_hint_88_avx2_hints_done_0_15:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 960(%rdi)
        vmovdqu	%ymm5, 992(%rdi)
        # 2/4 vectors
        mov	81(%rsi), %dl
        vmovdqu	1024(%rdi), %ymm0
        vmovdqu	1056(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_0:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_0
        mov	%r8b, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_0
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_0
L_mldsa_use_hint_88_avx2_hints_done_1_0:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1024(%rdi)
        vmovdqu	%ymm5, 1056(%rdi)
        vmovdqu	1088(%rdi), %ymm0
        vmovdqu	1120(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_1:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_1
        mov	%r8b, %cl
        sub	$16, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_1
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_1
L_mldsa_use_hint_88_avx2_hints_done_1_1:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1088(%rdi)
        vmovdqu	%ymm5, 1120(%rdi)
        vmovdqu	1152(%rdi), %ymm0
        vmovdqu	1184(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_2:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_2
        mov	%r8b, %cl
        sub	$32, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_2
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_2
L_mldsa_use_hint_88_avx2_hints_done_1_2:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1152(%rdi)
        vmovdqu	%ymm5, 1184(%rdi)
        vmovdqu	1216(%rdi), %ymm0
        vmovdqu	1248(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_3:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_3
        mov	%r8b, %cl
        sub	$48, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_3
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_3
L_mldsa_use_hint_88_avx2_hints_done_1_3:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1216(%rdi)
        vmovdqu	%ymm5, 1248(%rdi)
        vmovdqu	1280(%rdi), %ymm0
        vmovdqu	1312(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_4:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_4
        mov	%r8b, %cl
        sub	$0x40, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_4
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_4
L_mldsa_use_hint_88_avx2_hints_done_1_4:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1280(%rdi)
        vmovdqu	%ymm5, 1312(%rdi)
        vmovdqu	1344(%rdi), %ymm0
        vmovdqu	1376(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_5:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_5
        mov	%r8b, %cl
        sub	$0x50, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_5
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_5
L_mldsa_use_hint_88_avx2_hints_done_1_5:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1344(%rdi)
        vmovdqu	%ymm5, 1376(%rdi)
        vmovdqu	1408(%rdi), %ymm0
        vmovdqu	1440(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_6:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_6
        mov	%r8b, %cl
        sub	$0x60, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_6
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_6
L_mldsa_use_hint_88_avx2_hints_done_1_6:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1408(%rdi)
        vmovdqu	%ymm5, 1440(%rdi)
        vmovdqu	1472(%rdi), %ymm0
        vmovdqu	1504(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_7:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_7
        mov	%r8b, %cl
        sub	$0x70, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_7
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_7
L_mldsa_use_hint_88_avx2_hints_done_1_7:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1472(%rdi)
        vmovdqu	%ymm5, 1504(%rdi)
        vmovdqu	1536(%rdi), %ymm0
        vmovdqu	1568(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_8:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_8
        mov	%r8b, %cl
        sub	$0x80, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_8
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_8
L_mldsa_use_hint_88_avx2_hints_done_1_8:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1536(%rdi)
        vmovdqu	%ymm5, 1568(%rdi)
        vmovdqu	1600(%rdi), %ymm0
        vmovdqu	1632(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_9:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_9
        mov	%r8b, %cl
        sub	$0x90, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_9
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_9
L_mldsa_use_hint_88_avx2_hints_done_1_9:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1600(%rdi)
        vmovdqu	%ymm5, 1632(%rdi)
        vmovdqu	1664(%rdi), %ymm0
        vmovdqu	1696(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_10:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_10
        mov	%r8b, %cl
        sub	$0xa0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_10
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_10
L_mldsa_use_hint_88_avx2_hints_done_1_10:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1664(%rdi)
        vmovdqu	%ymm5, 1696(%rdi)
        vmovdqu	1728(%rdi), %ymm0
        vmovdqu	1760(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_11:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_11
        mov	%r8b, %cl
        sub	$0xb0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_11
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_11
L_mldsa_use_hint_88_avx2_hints_done_1_11:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1728(%rdi)
        vmovdqu	%ymm5, 1760(%rdi)
        vmovdqu	1792(%rdi), %ymm0
        vmovdqu	1824(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_12:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_12
        mov	%r8b, %cl
        sub	$0xc0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_12
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_12
L_mldsa_use_hint_88_avx2_hints_done_1_12:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1792(%rdi)
        vmovdqu	%ymm5, 1824(%rdi)
        vmovdqu	1856(%rdi), %ymm0
        vmovdqu	1888(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_13:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_13
        mov	%r8b, %cl
        sub	$0xd0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_13
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_13
L_mldsa_use_hint_88_avx2_hints_done_1_13:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1856(%rdi)
        vmovdqu	%ymm5, 1888(%rdi)
        vmovdqu	1920(%rdi), %ymm0
        vmovdqu	1952(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_14:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_14
        mov	%r8b, %cl
        sub	$0xe0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_14
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_14
L_mldsa_use_hint_88_avx2_hints_done_1_14:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1920(%rdi)
        vmovdqu	%ymm5, 1952(%rdi)
        vmovdqu	1984(%rdi), %ymm0
        vmovdqu	2016(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_1_15:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_15
        mov	%r8b, %cl
        sub	$0xf0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_1_15
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_1_15
L_mldsa_use_hint_88_avx2_hints_done_1_15:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 1984(%rdi)
        vmovdqu	%ymm5, 2016(%rdi)
        # 3/4 vectors
        mov	82(%rsi), %dl
        vmovdqu	2048(%rdi), %ymm0
        vmovdqu	2080(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_0:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_0
        mov	%r8b, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_0
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_0
L_mldsa_use_hint_88_avx2_hints_done_2_0:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2048(%rdi)
        vmovdqu	%ymm5, 2080(%rdi)
        vmovdqu	2112(%rdi), %ymm0
        vmovdqu	2144(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_1:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_1
        mov	%r8b, %cl
        sub	$16, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_1
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_1
L_mldsa_use_hint_88_avx2_hints_done_2_1:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2112(%rdi)
        vmovdqu	%ymm5, 2144(%rdi)
        vmovdqu	2176(%rdi), %ymm0
        vmovdqu	2208(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_2:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_2
        mov	%r8b, %cl
        sub	$32, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_2
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_2
L_mldsa_use_hint_88_avx2_hints_done_2_2:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2176(%rdi)
        vmovdqu	%ymm5, 2208(%rdi)
        vmovdqu	2240(%rdi), %ymm0
        vmovdqu	2272(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_3:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_3
        mov	%r8b, %cl
        sub	$48, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_3
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_3
L_mldsa_use_hint_88_avx2_hints_done_2_3:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2240(%rdi)
        vmovdqu	%ymm5, 2272(%rdi)
        vmovdqu	2304(%rdi), %ymm0
        vmovdqu	2336(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_4:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_4
        mov	%r8b, %cl
        sub	$0x40, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_4
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_4
L_mldsa_use_hint_88_avx2_hints_done_2_4:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2304(%rdi)
        vmovdqu	%ymm5, 2336(%rdi)
        vmovdqu	2368(%rdi), %ymm0
        vmovdqu	2400(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_5:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_5
        mov	%r8b, %cl
        sub	$0x50, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_5
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_5
L_mldsa_use_hint_88_avx2_hints_done_2_5:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2368(%rdi)
        vmovdqu	%ymm5, 2400(%rdi)
        vmovdqu	2432(%rdi), %ymm0
        vmovdqu	2464(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_6:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_6
        mov	%r8b, %cl
        sub	$0x60, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_6
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_6
L_mldsa_use_hint_88_avx2_hints_done_2_6:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2432(%rdi)
        vmovdqu	%ymm5, 2464(%rdi)
        vmovdqu	2496(%rdi), %ymm0
        vmovdqu	2528(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_7:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_7
        mov	%r8b, %cl
        sub	$0x70, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_7
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_7
L_mldsa_use_hint_88_avx2_hints_done_2_7:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2496(%rdi)
        vmovdqu	%ymm5, 2528(%rdi)
        vmovdqu	2560(%rdi), %ymm0
        vmovdqu	2592(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_8:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_8
        mov	%r8b, %cl
        sub	$0x80, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_8
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_8
L_mldsa_use_hint_88_avx2_hints_done_2_8:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2560(%rdi)
        vmovdqu	%ymm5, 2592(%rdi)
        vmovdqu	2624(%rdi), %ymm0
        vmovdqu	2656(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_9:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_9
        mov	%r8b, %cl
        sub	$0x90, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_9
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_9
L_mldsa_use_hint_88_avx2_hints_done_2_9:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2624(%rdi)
        vmovdqu	%ymm5, 2656(%rdi)
        vmovdqu	2688(%rdi), %ymm0
        vmovdqu	2720(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_10:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_10
        mov	%r8b, %cl
        sub	$0xa0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_10
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_10
L_mldsa_use_hint_88_avx2_hints_done_2_10:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2688(%rdi)
        vmovdqu	%ymm5, 2720(%rdi)
        vmovdqu	2752(%rdi), %ymm0
        vmovdqu	2784(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_11:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_11
        mov	%r8b, %cl
        sub	$0xb0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_11
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_11
L_mldsa_use_hint_88_avx2_hints_done_2_11:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2752(%rdi)
        vmovdqu	%ymm5, 2784(%rdi)
        vmovdqu	2816(%rdi), %ymm0
        vmovdqu	2848(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_12:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_12
        mov	%r8b, %cl
        sub	$0xc0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_12
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_12
L_mldsa_use_hint_88_avx2_hints_done_2_12:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2816(%rdi)
        vmovdqu	%ymm5, 2848(%rdi)
        vmovdqu	2880(%rdi), %ymm0
        vmovdqu	2912(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_13:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_13
        mov	%r8b, %cl
        sub	$0xd0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_13
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_13
L_mldsa_use_hint_88_avx2_hints_done_2_13:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2880(%rdi)
        vmovdqu	%ymm5, 2912(%rdi)
        vmovdqu	2944(%rdi), %ymm0
        vmovdqu	2976(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_14:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_14
        mov	%r8b, %cl
        sub	$0xe0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_14
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_14
L_mldsa_use_hint_88_avx2_hints_done_2_14:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 2944(%rdi)
        vmovdqu	%ymm5, 2976(%rdi)
        vmovdqu	3008(%rdi), %ymm0
        vmovdqu	3040(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_2_15:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_15
        mov	%r8b, %cl
        sub	$0xf0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_2_15
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_2_15
L_mldsa_use_hint_88_avx2_hints_done_2_15:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3008(%rdi)
        vmovdqu	%ymm5, 3040(%rdi)
        # 4/4 vectors
        mov	83(%rsi), %dl
        vmovdqu	3072(%rdi), %ymm0
        vmovdqu	3104(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_0:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_0
        mov	%r8b, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_0
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_0
L_mldsa_use_hint_88_avx2_hints_done_3_0:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3072(%rdi)
        vmovdqu	%ymm5, 3104(%rdi)
        vmovdqu	3136(%rdi), %ymm0
        vmovdqu	3168(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_1:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_1
        mov	%r8b, %cl
        sub	$16, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_1
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_1
L_mldsa_use_hint_88_avx2_hints_done_3_1:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3136(%rdi)
        vmovdqu	%ymm5, 3168(%rdi)
        vmovdqu	3200(%rdi), %ymm0
        vmovdqu	3232(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_2:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_2
        mov	%r8b, %cl
        sub	$32, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_2
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_2
L_mldsa_use_hint_88_avx2_hints_done_3_2:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3200(%rdi)
        vmovdqu	%ymm5, 3232(%rdi)
        vmovdqu	3264(%rdi), %ymm0
        vmovdqu	3296(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_3:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_3
        mov	%r8b, %cl
        sub	$48, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_3
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_3
L_mldsa_use_hint_88_avx2_hints_done_3_3:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3264(%rdi)
        vmovdqu	%ymm5, 3296(%rdi)
        vmovdqu	3328(%rdi), %ymm0
        vmovdqu	3360(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_4:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_4
        mov	%r8b, %cl
        sub	$0x40, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_4
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_4
L_mldsa_use_hint_88_avx2_hints_done_3_4:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3328(%rdi)
        vmovdqu	%ymm5, 3360(%rdi)
        vmovdqu	3392(%rdi), %ymm0
        vmovdqu	3424(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_5:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_5
        mov	%r8b, %cl
        sub	$0x50, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_5
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_5
L_mldsa_use_hint_88_avx2_hints_done_3_5:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3392(%rdi)
        vmovdqu	%ymm5, 3424(%rdi)
        vmovdqu	3456(%rdi), %ymm0
        vmovdqu	3488(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_6:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_6
        mov	%r8b, %cl
        sub	$0x60, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_6
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_6
L_mldsa_use_hint_88_avx2_hints_done_3_6:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3456(%rdi)
        vmovdqu	%ymm5, 3488(%rdi)
        vmovdqu	3520(%rdi), %ymm0
        vmovdqu	3552(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_7:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_7
        mov	%r8b, %cl
        sub	$0x70, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_7
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_7
L_mldsa_use_hint_88_avx2_hints_done_3_7:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3520(%rdi)
        vmovdqu	%ymm5, 3552(%rdi)
        vmovdqu	3584(%rdi), %ymm0
        vmovdqu	3616(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_8:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_8
        mov	%r8b, %cl
        sub	$0x80, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_8
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_8
L_mldsa_use_hint_88_avx2_hints_done_3_8:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3584(%rdi)
        vmovdqu	%ymm5, 3616(%rdi)
        vmovdqu	3648(%rdi), %ymm0
        vmovdqu	3680(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_9:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_9
        mov	%r8b, %cl
        sub	$0x90, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_9
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_9
L_mldsa_use_hint_88_avx2_hints_done_3_9:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3648(%rdi)
        vmovdqu	%ymm5, 3680(%rdi)
        vmovdqu	3712(%rdi), %ymm0
        vmovdqu	3744(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_10:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_10
        mov	%r8b, %cl
        sub	$0xa0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_10
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_10
L_mldsa_use_hint_88_avx2_hints_done_3_10:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3712(%rdi)
        vmovdqu	%ymm5, 3744(%rdi)
        vmovdqu	3776(%rdi), %ymm0
        vmovdqu	3808(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_11:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_11
        mov	%r8b, %cl
        sub	$0xb0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_11
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_11
L_mldsa_use_hint_88_avx2_hints_done_3_11:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3776(%rdi)
        vmovdqu	%ymm5, 3808(%rdi)
        vmovdqu	3840(%rdi), %ymm0
        vmovdqu	3872(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_12:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_12
        mov	%r8b, %cl
        sub	$0xc0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_12
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_12
L_mldsa_use_hint_88_avx2_hints_done_3_12:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3840(%rdi)
        vmovdqu	%ymm5, 3872(%rdi)
        vmovdqu	3904(%rdi), %ymm0
        vmovdqu	3936(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_13:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_13
        mov	%r8b, %cl
        sub	$0xd0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_13
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_13
L_mldsa_use_hint_88_avx2_hints_done_3_13:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3904(%rdi)
        vmovdqu	%ymm5, 3936(%rdi)
        vmovdqu	3968(%rdi), %ymm0
        vmovdqu	4000(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_14:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_14
        mov	%r8b, %cl
        sub	$0xe0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_14
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_14
L_mldsa_use_hint_88_avx2_hints_done_3_14:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 3968(%rdi)
        vmovdqu	%ymm5, 4000(%rdi)
        vmovdqu	4032(%rdi), %ymm0
        vmovdqu	4064(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpmulld	%ymm12, %ymm0, %ymm4
        vpmulld	%ymm12, %ymm1, %ymm5
        vpaddd	%ymm11, %ymm4, %ymm4
        vpaddd	%ymm11, %ymm5, %ymm5
        vpsrld	$23, %ymm4, %ymm4
        vpsrld	$23, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpcmpeqd	%ymm12, %ymm4, %ymm0
        vpcmpeqd	%ymm12, %ymm5, %ymm1
        vpaddd	%ymm0, %ymm2, %ymm2
        vpaddd	%ymm1, %ymm3, %ymm3
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        movq	$0x01, %r9
        xorq	%r10, %r10
        xorq	%rcx, %rcx
L_mldsa_use_hint_88_avx2_hints_next_3_15:
        cmp	%dl, %al
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_15
        mov	%r8b, %cl
        sub	$0xf0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_88_avx2_hints_done_3_15
        mov	%r9, %r11
        shlq	%cl, %r11
        orq	%r11, %r10
        inc	%al
        mov	(%rsi,%rax,1), %r8b
        jmp	L_mldsa_use_hint_88_avx2_hints_next_3_15
L_mldsa_use_hint_88_avx2_hints_done_3_15:
        movd	%r10d, %xmm6
        shr	$8, %r10
        movd	%r10d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpcmpgtd	%ymm4, %ymm12, %ymm0
        vpcmpgtd	%ymm5, %ymm12, %ymm1
        vpand	%ymm0, %ymm4, %ymm4
        vpand	%ymm1, %ymm5, %ymm5
        vpsrad	$31, %ymm4, %ymm0
        vpsrad	$31, %ymm5, %ymm1
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpaddd	%ymm0, %ymm4, %ymm4
        vpaddd	%ymm1, %ymm5, %ymm5
        vmovdqu	%ymm4, 4032(%rdi)
        vmovdqu	%ymm5, 4064(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_use_hint_88_avx2,.-wc_mldsa_use_hint_88_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_q:
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
.long	0x007fe001,0x007fe001,0x007fe001,0x007fe001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_q_low_32:
.long	0x0003ff00,0x0003ff00,0x0003ff00,0x0003ff00
.long	0x0003ff00,0x0003ff00,0x0003ff00,0x0003ff00
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_q_low_32_2:
.long	0x0007fe00,0x0007fe00,0x0007fe00,0x0007fe00
.long	0x0007fe00,0x0007fe00,0x0007fe00,0x0007fe00
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_q_low_32_m1:
.long	0x0003feff,0x0003feff,0x0003feff,0x0003feff
.long	0x0003feff,0x0003feff,0x0003feff,0x0003feff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_mask:
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
.long	0x0000000f,0x0000000f,0x0000000f,0x0000000f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_vsl:
.long	0x0000001f,0x0000001e,0x0000001d,0x0000001c
.long	0x0000001b,0x0000001a,0x00000019,0x00000018
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mldsa_use_hint_32_avx2_one:
.long	0x00000001,0x00000001,0x00000001,0x00000001
.long	0x00000001,0x00000001,0x00000001,0x00000001
#ifndef __APPLE__
.text
.globl	wc_mldsa_use_hint_32_avx2
.type	wc_mldsa_use_hint_32_avx2,@function
.align	16
wc_mldsa_use_hint_32_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_use_hint_32_avx2
.p2align	4
_wc_mldsa_use_hint_32_avx2:
#endif /* __APPLE__ */
        pushq	%r12
        pushq	%r13
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	L_mldsa_use_hint_32_avx2_q(%rip), %ymm8
        vmovdqu	L_mldsa_use_hint_32_avx2_q_low_32(%rip), %ymm9
        vmovdqu	L_mldsa_use_hint_32_avx2_q_low_32_2(%rip), %ymm10
        vmovdqu	L_mldsa_use_hint_32_avx2_q_low_32_m1(%rip), %ymm11
        vmovdqu	L_mldsa_use_hint_32_avx2_mask(%rip), %ymm12
        vmovdqu	L_mldsa_use_hint_32_avx2_vsl(%rip), %ymm13
        vmovdqu	L_mldsa_use_hint_32_avx2_one(%rip), %ymm14
        xorq	%r8, %r8
        mov	(%rdx), %r9b
        imulq	$10, %rsi, %r13
        subq	$5, %r13
L_mldsa_use_hint_32_avx2_start_256:
        mov	(%rdx,%r13,1), %al
        incq	%r13
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__0:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__0
        mov	%r9b, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__0
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__0
L_mldsa_use_hint_32_avx2_hints_done__0:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, (%rdi)
        vmovdqu	%ymm5, 32(%rdi)
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__1:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__1
        mov	%r9b, %cl
        sub	$16, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__1
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__1
L_mldsa_use_hint_32_avx2_hints_done__1:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 64(%rdi)
        vmovdqu	%ymm5, 96(%rdi)
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__2:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__2
        mov	%r9b, %cl
        sub	$32, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__2
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__2
L_mldsa_use_hint_32_avx2_hints_done__2:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__3:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__3
        mov	%r9b, %cl
        sub	$48, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__3
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__3
L_mldsa_use_hint_32_avx2_hints_done__3:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 192(%rdi)
        vmovdqu	%ymm5, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__4:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__4
        mov	%r9b, %cl
        sub	$0x40, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__4
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__4
L_mldsa_use_hint_32_avx2_hints_done__4:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 256(%rdi)
        vmovdqu	%ymm5, 288(%rdi)
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__5:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__5
        mov	%r9b, %cl
        sub	$0x50, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__5
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__5
L_mldsa_use_hint_32_avx2_hints_done__5:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 320(%rdi)
        vmovdqu	%ymm5, 352(%rdi)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__6:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__6
        mov	%r9b, %cl
        sub	$0x60, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__6
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__6
L_mldsa_use_hint_32_avx2_hints_done__6:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__7:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__7
        mov	%r9b, %cl
        sub	$0x70, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__7
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__7
L_mldsa_use_hint_32_avx2_hints_done__7:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 448(%rdi)
        vmovdqu	%ymm5, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__8:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__8
        mov	%r9b, %cl
        sub	$0x80, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__8
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__8
L_mldsa_use_hint_32_avx2_hints_done__8:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 512(%rdi)
        vmovdqu	%ymm5, 544(%rdi)
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__9:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__9
        mov	%r9b, %cl
        sub	$0x90, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__9
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__9
L_mldsa_use_hint_32_avx2_hints_done__9:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 576(%rdi)
        vmovdqu	%ymm5, 608(%rdi)
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__10:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__10
        mov	%r9b, %cl
        sub	$0xa0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__10
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__10
L_mldsa_use_hint_32_avx2_hints_done__10:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__11:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__11
        mov	%r9b, %cl
        sub	$0xb0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__11
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__11
L_mldsa_use_hint_32_avx2_hints_done__11:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 704(%rdi)
        vmovdqu	%ymm5, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__12:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__12
        mov	%r9b, %cl
        sub	$0xc0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__12
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__12
L_mldsa_use_hint_32_avx2_hints_done__12:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 768(%rdi)
        vmovdqu	%ymm5, 800(%rdi)
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__13:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__13
        mov	%r9b, %cl
        sub	$0xd0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__13
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__13
L_mldsa_use_hint_32_avx2_hints_done__13:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 832(%rdi)
        vmovdqu	%ymm5, 864(%rdi)
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__14:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__14
        mov	%r9b, %cl
        sub	$0xe0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__14
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__14
L_mldsa_use_hint_32_avx2_hints_done__14:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpsrad	$31, %ymm0, %ymm2
        vpsrad	$31, %ymm1, %ymm3
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm11, %ymm0, %ymm4
        vpaddd	%ymm11, %ymm1, %ymm5
        vpsrld	$19, %ymm4, %ymm4
        vpsrld	$19, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsubd	%ymm2, %ymm9, %ymm2
        vpsubd	%ymm3, %ymm9, %ymm3
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpmulld	%ymm10, %ymm4, %ymm2
        vpmulld	%ymm10, %ymm5, %ymm3
        vpsubd	%ymm2, %ymm0, %ymm2
        vpsubd	%ymm3, %ymm1, %ymm3
        vpsrld	$4, %ymm4, %ymm0
        vpsrld	$4, %ymm5, %ymm1
        vpsubd	%ymm0, %ymm2, %ymm2
        vpsubd	%ymm1, %ymm3, %ymm3
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        movq	$0x01, %r10
        xorq	%r11, %r11
        xorq	%rcx, %rcx
L_mldsa_use_hint_32_avx2_hints_next__15:
        cmp	%al, %r8b
        jge	L_mldsa_use_hint_32_avx2_hints_done__15
        mov	%r9b, %cl
        sub	$0xf0, %cl
        cmpq	$16, %rcx
        jge	L_mldsa_use_hint_32_avx2_hints_done__15
        mov	%r10, %r12
        shlq	%cl, %r12
        orq	%r12, %r11
        inc	%r8b
        mov	(%rdx,%r8,1), %r9b
        jmp	L_mldsa_use_hint_32_avx2_hints_next__15
L_mldsa_use_hint_32_avx2_hints_done__15:
        movd	%r11d, %xmm6
        shr	$8, %r11
        movd	%r11d, %xmm7
        vpbroadcastd	%xmm6, %ymm6
        vpbroadcastd	%xmm7, %ymm7
        vpsllvd	%ymm13, %ymm6, %ymm6
        vpsllvd	%ymm13, %ymm7, %ymm7
        vpsrad	$31, %ymm6, %ymm6
        vpsrad	$31, %ymm7, %ymm7
        vpsrld	$31, %ymm2, %ymm2
        vpsrld	$31, %ymm3, %ymm3
        vpslld	$0x01, %ymm2, %ymm2
        vpslld	$0x01, %ymm3, %ymm3
        vpsubd	%ymm2, %ymm14, %ymm2
        vpsubd	%ymm3, %ymm14, %ymm3
        vpand	%ymm6, %ymm2, %ymm2
        vpand	%ymm7, %ymm3, %ymm3
        vpaddd	%ymm2, %ymm4, %ymm4
        vpaddd	%ymm3, %ymm5, %ymm5
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vmovdqu	%ymm4, 960(%rdi)
        vmovdqu	%ymm5, 992(%rdi)
        addq	$0x400, %rdi
        sub	$0x01, %rsi
        jne	L_mldsa_use_hint_32_avx2_start_256
        vzeroupper
        popq	%r13
        popq	%r12
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_use_hint_32_avx2,.-wc_mldsa_use_hint_32_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_vec_check_low_avx2
.type	wc_mldsa_vec_check_low_avx2,@function
.align	16
wc_mldsa_vec_check_low_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_vec_check_low_avx2
.p2align	4
_wc_mldsa_vec_check_low_avx2:
#endif /* __APPLE__ */
        subl	$0x01, %edx
        movd	%edx, %xmm2
        negl	%edx
        movd	%edx, %xmm3
        vpbroadcastd	%xmm2, %ymm2
        vpbroadcastd	%xmm3, %ymm3
L_mldsa_vec_check_low_vx2_start_256:
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpcmpgtd	%ymm2, %ymm0, %ymm4
        vpcmpgtd	%ymm2, %ymm1, %ymm5
        vpcmpgtd	%ymm0, %ymm3, %ymm6
        vpcmpgtd	%ymm1, %ymm3, %ymm7
        vpor	%ymm5, %ymm4, %ymm4
        vpor	%ymm7, %ymm6, %ymm6
        vpor	%ymm6, %ymm4, %ymm4
        vpmovmskb	%ymm4, %rax
        cmp	$0x00, %rax
        movq	$0x00, %rax
        jne	L_mldsa_vec_check_low_vx2_done
        addq	$0x400, %rdi
        sub	$0x01, %rsi
        jne	L_mldsa_vec_check_low_vx2_start_256
        movq	$0x01, %rax
L_mldsa_vec_check_low_vx2_done:
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_vec_check_low_avx2,.-wc_mldsa_vec_check_low_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_poly_add_avx2
.type	wc_mldsa_poly_add_avx2,@function
.align	16
wc_mldsa_poly_add_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_poly_add_avx2
.p2align	4
_wc_mldsa_poly_add_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vmovdqu	(%rsi), %ymm8
        vmovdqu	32(%rsi), %ymm9
        vmovdqu	64(%rsi), %ymm10
        vmovdqu	96(%rsi), %ymm11
        vmovdqu	128(%rsi), %ymm12
        vmovdqu	160(%rsi), %ymm13
        vmovdqu	192(%rsi), %ymm14
        vmovdqu	224(%rsi), %ymm15
        vpaddd	%ymm8, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm10, %ymm2, %ymm2
        vpaddd	%ymm11, %ymm3, %ymm3
        vpaddd	%ymm12, %ymm4, %ymm4
        vpaddd	%ymm13, %ymm5, %ymm5
        vpaddd	%ymm14, %ymm6, %ymm6
        vpaddd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vmovdqu	256(%rsi), %ymm8
        vmovdqu	288(%rsi), %ymm9
        vmovdqu	320(%rsi), %ymm10
        vmovdqu	352(%rsi), %ymm11
        vmovdqu	384(%rsi), %ymm12
        vmovdqu	416(%rsi), %ymm13
        vmovdqu	448(%rsi), %ymm14
        vmovdqu	480(%rsi), %ymm15
        vpaddd	%ymm8, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm10, %ymm2, %ymm2
        vpaddd	%ymm11, %ymm3, %ymm3
        vpaddd	%ymm12, %ymm4, %ymm4
        vpaddd	%ymm13, %ymm5, %ymm5
        vpaddd	%ymm14, %ymm6, %ymm6
        vpaddd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vmovdqu	512(%rsi), %ymm8
        vmovdqu	544(%rsi), %ymm9
        vmovdqu	576(%rsi), %ymm10
        vmovdqu	608(%rsi), %ymm11
        vmovdqu	640(%rsi), %ymm12
        vmovdqu	672(%rsi), %ymm13
        vmovdqu	704(%rsi), %ymm14
        vmovdqu	736(%rsi), %ymm15
        vpaddd	%ymm8, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm10, %ymm2, %ymm2
        vpaddd	%ymm11, %ymm3, %ymm3
        vpaddd	%ymm12, %ymm4, %ymm4
        vpaddd	%ymm13, %ymm5, %ymm5
        vpaddd	%ymm14, %ymm6, %ymm6
        vpaddd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vmovdqu	768(%rsi), %ymm8
        vmovdqu	800(%rsi), %ymm9
        vmovdqu	832(%rsi), %ymm10
        vmovdqu	864(%rsi), %ymm11
        vmovdqu	896(%rsi), %ymm12
        vmovdqu	928(%rsi), %ymm13
        vmovdqu	960(%rsi), %ymm14
        vmovdqu	992(%rsi), %ymm15
        vpaddd	%ymm8, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpaddd	%ymm10, %ymm2, %ymm2
        vpaddd	%ymm11, %ymm3, %ymm3
        vpaddd	%ymm12, %ymm4, %ymm4
        vpaddd	%ymm13, %ymm5, %ymm5
        vpaddd	%ymm14, %ymm6, %ymm6
        vpaddd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_poly_add_avx2,.-wc_mldsa_poly_add_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_poly_sub_avx2
.type	wc_mldsa_poly_sub_avx2,@function
.align	16
wc_mldsa_poly_sub_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_poly_sub_avx2
.p2align	4
_wc_mldsa_poly_sub_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vmovdqu	192(%rdi), %ymm6
        vmovdqu	224(%rdi), %ymm7
        vmovdqu	(%rsi), %ymm8
        vmovdqu	32(%rsi), %ymm9
        vmovdqu	64(%rsi), %ymm10
        vmovdqu	96(%rsi), %ymm11
        vmovdqu	128(%rsi), %ymm12
        vmovdqu	160(%rsi), %ymm13
        vmovdqu	192(%rsi), %ymm14
        vmovdqu	224(%rsi), %ymm15
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm10, %ymm2, %ymm2
        vpsubd	%ymm11, %ymm3, %ymm3
        vpsubd	%ymm12, %ymm4, %ymm4
        vpsubd	%ymm13, %ymm5, %ymm5
        vpsubd	%ymm14, %ymm6, %ymm6
        vpsubd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	%ymm4, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm6, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vmovdqu	448(%rdi), %ymm6
        vmovdqu	480(%rdi), %ymm7
        vmovdqu	256(%rsi), %ymm8
        vmovdqu	288(%rsi), %ymm9
        vmovdqu	320(%rsi), %ymm10
        vmovdqu	352(%rsi), %ymm11
        vmovdqu	384(%rsi), %ymm12
        vmovdqu	416(%rsi), %ymm13
        vmovdqu	448(%rsi), %ymm14
        vmovdqu	480(%rsi), %ymm15
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm10, %ymm2, %ymm2
        vpsubd	%ymm11, %ymm3, %ymm3
        vpsubd	%ymm12, %ymm4, %ymm4
        vpsubd	%ymm13, %ymm5, %ymm5
        vpsubd	%ymm14, %ymm6, %ymm6
        vpsubd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	%ymm4, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm6, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vmovdqu	640(%rdi), %ymm4
        vmovdqu	672(%rdi), %ymm5
        vmovdqu	704(%rdi), %ymm6
        vmovdqu	736(%rdi), %ymm7
        vmovdqu	512(%rsi), %ymm8
        vmovdqu	544(%rsi), %ymm9
        vmovdqu	576(%rsi), %ymm10
        vmovdqu	608(%rsi), %ymm11
        vmovdqu	640(%rsi), %ymm12
        vmovdqu	672(%rsi), %ymm13
        vmovdqu	704(%rsi), %ymm14
        vmovdqu	736(%rsi), %ymm15
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm10, %ymm2, %ymm2
        vpsubd	%ymm11, %ymm3, %ymm3
        vpsubd	%ymm12, %ymm4, %ymm4
        vpsubd	%ymm13, %ymm5, %ymm5
        vpsubd	%ymm14, %ymm6, %ymm6
        vpsubd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	%ymm4, 640(%rdi)
        vmovdqu	%ymm5, 672(%rdi)
        vmovdqu	%ymm6, 704(%rdi)
        vmovdqu	%ymm7, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vmovdqu	896(%rdi), %ymm4
        vmovdqu	928(%rdi), %ymm5
        vmovdqu	960(%rdi), %ymm6
        vmovdqu	992(%rdi), %ymm7
        vmovdqu	768(%rsi), %ymm8
        vmovdqu	800(%rsi), %ymm9
        vmovdqu	832(%rsi), %ymm10
        vmovdqu	864(%rsi), %ymm11
        vmovdqu	896(%rsi), %ymm12
        vmovdqu	928(%rsi), %ymm13
        vmovdqu	960(%rsi), %ymm14
        vmovdqu	992(%rsi), %ymm15
        vpsubd	%ymm8, %ymm0, %ymm0
        vpsubd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm10, %ymm2, %ymm2
        vpsubd	%ymm11, %ymm3, %ymm3
        vpsubd	%ymm12, %ymm4, %ymm4
        vpsubd	%ymm13, %ymm5, %ymm5
        vpsubd	%ymm14, %ymm6, %ymm6
        vpsubd	%ymm15, %ymm7, %ymm7
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	%ymm4, 896(%rdi)
        vmovdqu	%ymm5, 928(%rdi)
        vmovdqu	%ymm6, 960(%rdi)
        vmovdqu	%ymm7, 992(%rdi)
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_poly_sub_avx2,.-wc_mldsa_poly_sub_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	wc_mldsa_poly_make_pos_avx2
.type	wc_mldsa_poly_make_pos_avx2,@function
.align	16
wc_mldsa_poly_make_pos_avx2:
#else
.section	__TEXT,__text
.globl	_wc_mldsa_poly_make_pos_avx2
.p2align	4
_wc_mldsa_poly_make_pos_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm8, %ymm8, %ymm8
        vmovdqu	mldsa_q(%rip), %ymm9
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm1, 416(%rdi)
        vmovdqu	%ymm2, 448(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vmovdqu	576(%rdi), %ymm2
        vmovdqu	608(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 512(%rdi)
        vmovdqu	%ymm1, 544(%rdi)
        vmovdqu	%ymm2, 576(%rdi)
        vmovdqu	%ymm3, 608(%rdi)
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vmovdqu	704(%rdi), %ymm2
        vmovdqu	736(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 640(%rdi)
        vmovdqu	%ymm1, 672(%rdi)
        vmovdqu	%ymm2, 704(%rdi)
        vmovdqu	%ymm3, 736(%rdi)
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vmovdqu	832(%rdi), %ymm2
        vmovdqu	864(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 768(%rdi)
        vmovdqu	%ymm1, 800(%rdi)
        vmovdqu	%ymm2, 832(%rdi)
        vmovdqu	%ymm3, 864(%rdi)
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vmovdqu	960(%rdi), %ymm2
        vmovdqu	992(%rdi), %ymm3
        vpcmpgtd	%ymm0, %ymm8, %ymm4
        vpcmpgtd	%ymm1, %ymm8, %ymm5
        vpcmpgtd	%ymm2, %ymm8, %ymm6
        vpcmpgtd	%ymm3, %ymm8, %ymm7
        vpand	%ymm9, %ymm4, %ymm4
        vpand	%ymm9, %ymm5, %ymm5
        vpand	%ymm9, %ymm6, %ymm6
        vpand	%ymm9, %ymm7, %ymm7
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpaddd	%ymm6, %ymm2, %ymm2
        vpaddd	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 896(%rdi)
        vmovdqu	%ymm1, 928(%rdi)
        vmovdqu	%ymm2, 960(%rdi)
        vmovdqu	%ymm3, 992(%rdi)
        repz retq
#ifndef __APPLE__
.size	wc_mldsa_poly_make_pos_avx2,.-wc_mldsa_poly_make_pos_avx2
#endif /* __APPLE__ */
#endif /* HAVE_INTEL_AVX2 */
#endif /* WOLFSSL_HAVE_MLDSA */

#if defined(__linux__) && defined(__ELF__)
.section	.note.GNU-stack,"",%progbits
#endif
