/* wc_mlkem_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_MLKEM
#ifdef HAVE_INTEL_AVX2
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mlkem_q:
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mlkem_qinv:
.short	0xf301,0xf301,0xf301,0xf301,0xf301,0xf301,0xf301,0xf301
.short	0xf301,0xf301,0xf301,0xf301,0xf301,0xf301,0xf301,0xf301
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mlkem_f:
.short	0x0549,0x0549,0x0549,0x0549,0x0549,0x0549,0x0549,0x0549
.short	0x0549,0x0549,0x0549,0x0549,0x0549,0x0549,0x0549,0x0549
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mlkem_f_qinv:
.short	0x5049,0x5049,0x5049,0x5049,0x5049,0x5049,0x5049,0x5049
.short	0x5049,0x5049,0x5049,0x5049,0x5049,0x5049,0x5049,0x5049
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
mlkem_v:
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_avx2_zetas:
.short	0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b
.short	0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b,0x0a0b
.short	0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b
.short	0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b,0x7b0b
.short	0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a
.short	0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a,0x0b9a
.short	0x399a,0x399a,0x399a,0x399a,0x399a,0x399a,0x399a,0x399a
.short	0x399a,0x399a,0x399a,0x399a,0x399a,0x399a,0x399a,0x399a
.short	0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5
.short	0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5,0x05d5
.short	0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5
.short	0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5,0x34d5
.short	0x058e,0x058e,0x058e,0x058e,0x058e,0x058e,0x058e,0x058e
.short	0x058e,0x058e,0x058e,0x058e,0x058e,0x058e,0x058e,0x058e
.short	0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e
.short	0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e,0xcf8e
.short	0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56
.short	0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56,0x0c56
.short	0xae56,0xae56,0xae56,0xae56,0xae56,0xae56,0xae56,0xae56
.short	0xae56,0xae56,0xae56,0xae56,0xae56,0xae56,0xae56,0xae56
.short	0x026e,0x026e,0x026e,0x026e,0x026e,0x026e,0x026e,0x026e
.short	0x026e,0x026e,0x026e,0x026e,0x026e,0x026e,0x026e,0x026e
.short	0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e
.short	0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e,0x6c6e
.short	0x0629,0x0629,0x0629,0x0629,0x0629,0x0629,0x0629,0x0629
.short	0x0629,0x0629,0x0629,0x0629,0x0629,0x0629,0x0629,0x0629
.short	0xf129,0xf129,0xf129,0xf129,0xf129,0xf129,0xf129,0xf129
.short	0xf129,0xf129,0xf129,0xf129,0xf129,0xf129,0xf129,0xf129
.short	0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6
.short	0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6,0x00b6
.short	0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6
.short	0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6,0xc2b6
.short	0x023d,0x023d,0x023d,0x023d,0x023d,0x023d,0x023d,0x023d
.short	0x07d4,0x07d4,0x07d4,0x07d4,0x07d4,0x07d4,0x07d4,0x07d4
.short	0xe93d,0xe93d,0xe93d,0xe93d,0xe93d,0xe93d,0xe93d,0xe93d
.short	0x43d4,0x43d4,0x43d4,0x43d4,0x43d4,0x43d4,0x43d4,0x43d4
.short	0x0108,0x0108,0x0108,0x0108,0x0108,0x0108,0x0108,0x0108
.short	0x017f,0x017f,0x017f,0x017f,0x017f,0x017f,0x017f,0x017f
.short	0x9908,0x9908,0x9908,0x9908,0x9908,0x9908,0x9908,0x9908
.short	0x8e7f,0x8e7f,0x8e7f,0x8e7f,0x8e7f,0x8e7f,0x8e7f,0x8e7f
.short	0x04c7,0x04c7,0x04c7,0x04c7,0x028c,0x028c,0x028c,0x028c
.short	0x0ad9,0x0ad9,0x0ad9,0x0ad9,0x03f7,0x03f7,0x03f7,0x03f7
.short	0xe9c7,0xe9c7,0xe9c7,0xe9c7,0xe68c,0xe68c,0xe68c,0xe68c
.short	0x05d9,0x05d9,0x05d9,0x05d9,0x78f7,0x78f7,0x78f7,0x78f7
.short	0x07f4,0x07f4,0x07f4,0x07f4,0x05d3,0x05d3,0x05d3,0x05d3
.short	0x0be7,0x0be7,0x0be7,0x0be7,0x06f9,0x06f9,0x06f9,0x06f9
.short	0xa3f4,0xa3f4,0xa3f4,0xa3f4,0x4ed3,0x4ed3,0x4ed3,0x4ed3
.short	0x50e7,0x50e7,0x50e7,0x50e7,0x61f9,0x61f9,0x61f9,0x61f9
.short	0x09c4,0x09c4,0x09c4,0x09c4,0x09c4,0x09c4,0x09c4,0x09c4
.short	0x05b2,0x05b2,0x05b2,0x05b2,0x05b2,0x05b2,0x05b2,0x05b2
.short	0x15c4,0x15c4,0x15c4,0x15c4,0x15c4,0x15c4,0x15c4,0x15c4
.short	0xfbb2,0xfbb2,0xfbb2,0xfbb2,0xfbb2,0xfbb2,0xfbb2,0xfbb2
.short	0x06bf,0x06bf,0x06bf,0x06bf,0x06bf,0x06bf,0x06bf,0x06bf
.short	0x0c7f,0x0c7f,0x0c7f,0x0c7f,0x0c7f,0x0c7f,0x0c7f,0x0c7f
.short	0x53bf,0x53bf,0x53bf,0x53bf,0x53bf,0x53bf,0x53bf,0x53bf
.short	0x997f,0x997f,0x997f,0x997f,0x997f,0x997f,0x997f,0x997f
.short	0x0204,0x0204,0x0204,0x0204,0x0cf9,0x0cf9,0x0cf9,0x0cf9
.short	0x0bc1,0x0bc1,0x0bc1,0x0bc1,0x0a67,0x0a67,0x0a67,0x0a67
.short	0xce04,0xce04,0xce04,0xce04,0x67f9,0x67f9,0x67f9,0x67f9
.short	0x3ec1,0x3ec1,0x3ec1,0x3ec1,0xcf67,0xcf67,0xcf67,0xcf67
.short	0x06af,0x06af,0x06af,0x06af,0x0877,0x0877,0x0877,0x0877
.short	0x007e,0x007e,0x007e,0x007e,0x05bd,0x05bd,0x05bd,0x05bd
.short	0x23af,0x23af,0x23af,0x23af,0xfd77,0xfd77,0xfd77,0xfd77
.short	0x9a7e,0x9a7e,0x9a7e,0x9a7e,0x6cbd,0x6cbd,0x6cbd,0x6cbd
.short	0x08b2,0x08b2,0x01ae,0x01ae,0x022b,0x022b,0x034b,0x034b
.short	0x081e,0x081e,0x0367,0x0367,0x060e,0x060e,0x0069,0x0069
.short	0xfeb2,0xfeb2,0x2bae,0x2bae,0xd32b,0xd32b,0x344b,0x344b
.short	0x821e,0x821e,0xc867,0xc867,0x500e,0x500e,0xab69,0xab69
.short	0x01a6,0x01a6,0x024b,0x024b,0x00b1,0x00b1,0x0c16,0x0c16
.short	0x0bde,0x0bde,0x0b35,0x0b35,0x0626,0x0626,0x0675,0x0675
.short	0x93a6,0x93a6,0x334b,0x334b,0x03b1,0x03b1,0xee16,0xee16
.short	0xc5de,0xc5de,0x5a35,0x5a35,0x1826,0x1826,0x1575,0x1575
.short	0x0c0b,0x0c0b,0x030a,0x030a,0x0487,0x0487,0x0c6e,0x0c6e
.short	0x09f8,0x09f8,0x05cb,0x05cb,0x0aa7,0x0aa7,0x045f,0x045f
.short	0x7d0b,0x7d0b,0x810a,0x810a,0x2987,0x2987,0x766e,0x766e
.short	0x71f8,0x71f8,0xb6cb,0xb6cb,0x8fa7,0x8fa7,0x315f,0x315f
.short	0x06cb,0x06cb,0x0284,0x0284,0x0999,0x0999,0x015d,0x015d
.short	0x01a2,0x01a2,0x0149,0x0149,0x0c65,0x0c65,0x0cb6,0x0cb6
.short	0xb7cb,0xb7cb,0x4e84,0x4e84,0x4499,0x4499,0x485d,0x485d
.short	0xc7a2,0xc7a2,0x4c49,0x4c49,0xeb65,0xeb65,0xceb6,0xceb6
.short	0x0714,0x0714,0x0714,0x0714,0x0714,0x0714,0x0714,0x0714
.short	0x0714,0x0714,0x0714,0x0714,0x0714,0x0714,0x0714,0x0714
.short	0x0314,0x0314,0x0314,0x0314,0x0314,0x0314,0x0314,0x0314
.short	0x0314,0x0314,0x0314,0x0314,0x0314,0x0314,0x0314,0x0314
.short	0x011f,0x011f,0x011f,0x011f,0x011f,0x011f,0x011f,0x011f
.short	0x011f,0x011f,0x011f,0x011f,0x011f,0x011f,0x011f,0x011f
.short	0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f
.short	0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f,0x6e1f
.short	0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca
.short	0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca,0x00ca
.short	0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca
.short	0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca,0xbeca
.short	0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2
.short	0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2,0x03c2
.short	0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2
.short	0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2,0x29c2
.short	0x084f,0x084f,0x084f,0x084f,0x084f,0x084f,0x084f,0x084f
.short	0x084f,0x084f,0x084f,0x084f,0x084f,0x084f,0x084f,0x084f
.short	0x054f,0x054f,0x054f,0x054f,0x054f,0x054f,0x054f,0x054f
.short	0x054f,0x054f,0x054f,0x054f,0x054f,0x054f,0x054f,0x054f
.short	0x073f,0x073f,0x073f,0x073f,0x073f,0x073f,0x073f,0x073f
.short	0x073f,0x073f,0x073f,0x073f,0x073f,0x073f,0x073f,0x073f
.short	0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f
.short	0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f,0xd43f
.short	0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc
.short	0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc,0x05bc
.short	0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc
.short	0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc,0x79bc
.short	0x0a58,0x0a58,0x0a58,0x0a58,0x0a58,0x0a58,0x0a58,0x0a58
.short	0x03f9,0x03f9,0x03f9,0x03f9,0x03f9,0x03f9,0x03f9,0x03f9
.short	0x9258,0x9258,0x9258,0x9258,0x9258,0x9258,0x9258,0x9258
.short	0x5ef9,0x5ef9,0x5ef9,0x5ef9,0x5ef9,0x5ef9,0x5ef9,0x5ef9
.short	0x02dc,0x02dc,0x02dc,0x02dc,0x02dc,0x02dc,0x02dc,0x02dc
.short	0x0260,0x0260,0x0260,0x0260,0x0260,0x0260,0x0260,0x0260
.short	0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc,0xd6dc
.short	0x2260,0x2260,0x2260,0x2260,0x2260,0x2260,0x2260,0x2260
.short	0x09ac,0x09ac,0x09ac,0x09ac,0x0ca7,0x0ca7,0x0ca7,0x0ca7
.short	0x0bf2,0x0bf2,0x0bf2,0x0bf2,0x033e,0x033e,0x033e,0x033e
.short	0x4dac,0x4dac,0x4dac,0x4dac,0x91a7,0x91a7,0x91a7,0x91a7
.short	0xc1f2,0xc1f2,0xc1f2,0xc1f2,0xdd3e,0xdd3e,0xdd3e,0xdd3e
.short	0x006b,0x006b,0x006b,0x006b,0x0774,0x0774,0x0774,0x0774
.short	0x0c0a,0x0c0a,0x0c0a,0x0c0a,0x094a,0x094a,0x094a,0x094a
.short	0x916b,0x916b,0x916b,0x916b,0x2374,0x2374,0x2374,0x2374
.short	0x8a0a,0x8a0a,0x8a0a,0x8a0a,0x474a,0x474a,0x474a,0x474a
.short	0x06fb,0x06fb,0x06fb,0x06fb,0x06fb,0x06fb,0x06fb,0x06fb
.short	0x019b,0x019b,0x019b,0x019b,0x019b,0x019b,0x019b,0x019b
.short	0x47fb,0x47fb,0x47fb,0x47fb,0x47fb,0x47fb,0x47fb,0x47fb
.short	0x229b,0x229b,0x229b,0x229b,0x229b,0x229b,0x229b,0x229b
.short	0x0c34,0x0c34,0x0c34,0x0c34,0x0c34,0x0c34,0x0c34,0x0c34
.short	0x06de,0x06de,0x06de,0x06de,0x06de,0x06de,0x06de,0x06de
.short	0x6834,0x6834,0x6834,0x6834,0x6834,0x6834,0x6834,0x6834
.short	0xc0de,0xc0de,0xc0de,0xc0de,0xc0de,0xc0de,0xc0de,0xc0de
.short	0x0b73,0x0b73,0x0b73,0x0b73,0x03c1,0x03c1,0x03c1,0x03c1
.short	0x071d,0x071d,0x071d,0x071d,0x0a2c,0x0a2c,0x0a2c,0x0a2c
.short	0x3473,0x3473,0x3473,0x3473,0x36c1,0x36c1,0x36c1,0x36c1
.short	0x8e1d,0x8e1d,0x8e1d,0x8e1d,0xce2c,0xce2c,0xce2c,0xce2c
.short	0x01c0,0x01c0,0x01c0,0x01c0,0x08d8,0x08d8,0x08d8,0x08d8
.short	0x02a5,0x02a5,0x02a5,0x02a5,0x0806,0x0806,0x0806,0x0806
.short	0x41c0,0x41c0,0x41c0,0x41c0,0x10d8,0x10d8,0x10d8,0x10d8
.short	0xa1a5,0xa1a5,0xa1a5,0xa1a5,0xba06,0xba06,0xba06,0xba06
.short	0x0331,0x0331,0x0449,0x0449,0x025b,0x025b,0x0262,0x0262
.short	0x052a,0x052a,0x07fc,0x07fc,0x0748,0x0748,0x0180,0x0180
.short	0x8631,0x8631,0x4f49,0x4f49,0x635b,0x635b,0x0862,0x0862
.short	0xe32a,0xe32a,0x3bfc,0x3bfc,0x5f48,0x5f48,0x8180,0x8180
.short	0x0842,0x0842,0x0c79,0x0c79,0x04c2,0x04c2,0x07ca,0x07ca
.short	0x0997,0x0997,0x00dc,0x00dc,0x085e,0x085e,0x0686,0x0686
.short	0xae42,0xae42,0xe779,0xe779,0x2ac2,0x2ac2,0xc5ca,0xc5ca
.short	0x5e97,0x5e97,0xd4dc,0xd4dc,0x425e,0x425e,0x3886,0x3886
.short	0x0860,0x0860,0x0707,0x0707,0x0803,0x0803,0x031a,0x031a
.short	0x071b,0x071b,0x09ab,0x09ab,0x099b,0x099b,0x01de,0x01de
.short	0x2860,0x2860,0xac07,0xac07,0xe103,0xe103,0xb11a,0xb11a
.short	0xa81b,0xa81b,0x5aab,0x5aab,0x2a9b,0x2a9b,0xbbde,0xbbde
.short	0x0c95,0x0c95,0x0bcd,0x0bcd,0x03e4,0x03e4,0x03df,0x03df
.short	0x03be,0x03be,0x074d,0x074d,0x05f2,0x05f2,0x065c,0x065c
.short	0x7b95,0x7b95,0xa2cd,0xa2cd,0x6fe4,0x6fe4,0xb0df,0xb0df
.short	0x5dbe,0x5dbe,0x1e4d,0x1e4d,0xbbf2,0xbbf2,0x5a5c,0x5a5c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_avx2_zetas_basemul:
.short	0x08b2,0x081e,0xf74e,0xf7e2,0x01ae,0x0367,0xfe52,0xfc99
.short	0x022b,0x060e,0xfdd5,0xf9f2,0x034b,0x0069,0xfcb5,0xff97
.short	0xfeb2,0x821e,0x014e,0x7de2,0x2bae,0xc867,0xd452,0x3799
.short	0xd32b,0x500e,0x2cd5,0xaff2,0x344b,0xab69,0xcbb5,0x5497
.short	0x01a6,0x0bde,0xfe5a,0xf422,0x024b,0x0b35,0xfdb5,0xf4cb
.short	0x00b1,0x0626,0xff4f,0xf9da,0x0c16,0x0675,0xf3ea,0xf98b
.short	0x93a6,0xc5de,0x6c5a,0x3a22,0x334b,0x5a35,0xccb5,0xa5cb
.short	0x03b1,0x1826,0xfc4f,0xe7da,0xee16,0x1575,0x11ea,0xea8b
.short	0x0c0b,0x09f8,0xf3f5,0xf608,0x030a,0x05cb,0xfcf6,0xfa35
.short	0x0487,0x0aa7,0xfb79,0xf559,0x0c6e,0x045f,0xf392,0xfba1
.short	0x7d0b,0x71f8,0x82f5,0x8e08,0x810a,0xb6cb,0x7ef6,0x4935
.short	0x2987,0x8fa7,0xd679,0x7059,0x766e,0x315f,0x8992,0xcea1
.short	0x06cb,0x01a2,0xf935,0xfe5e,0x0284,0x0149,0xfd7c,0xfeb7
.short	0x0999,0x0c65,0xf667,0xf39b,0x015d,0x0cb6,0xfea3,0xf34a
.short	0xb7cb,0xc7a2,0x4835,0x385e,0x4e84,0x4c49,0xb17c,0xb3b7
.short	0x4499,0xeb65,0xbb67,0x149b,0x485d,0xceb6,0xb7a3,0x314a
.short	0x0331,0x052a,0xfccf,0xfad6,0x0449,0x07fc,0xfbb7,0xf804
.short	0x025b,0x0748,0xfda5,0xf8b8,0x0262,0x0180,0xfd9e,0xfe80
.short	0x8631,0xe32a,0x79cf,0x1cd6,0x4f49,0x3bfc,0xb0b7,0xc404
.short	0x635b,0x5f48,0x9ca5,0xa0b8,0x0862,0x8180,0xf79e,0x7e80
.short	0x0842,0x0997,0xf7be,0xf669,0x0c79,0x00dc,0xf387,0xff24
.short	0x04c2,0x085e,0xfb3e,0xf7a2,0x07ca,0x0686,0xf836,0xf97a
.short	0xae42,0x5e97,0x51be,0xa169,0xe779,0xd4dc,0x1887,0x2b24
.short	0x2ac2,0x425e,0xd53e,0xbda2,0xc5ca,0x3886,0x3a36,0xc77a
.short	0x0860,0x071b,0xf7a0,0xf8e5,0x0707,0x09ab,0xf8f9,0xf655
.short	0x0803,0x099b,0xf7fd,0xf665,0x031a,0x01de,0xfce6,0xfe22
.short	0x2860,0xa81b,0xd7a0,0x57e5,0xac07,0x5aab,0x53f9,0xa555
.short	0xe103,0x2a9b,0x1efd,0xd565,0xb11a,0xbbde,0x4ee6,0x4422
.short	0x0c95,0x03be,0xf36b,0xfc42,0x0bcd,0x074d,0xf433,0xf8b3
.short	0x03e4,0x05f2,0xfc1c,0xfa0e,0x03df,0x065c,0xfc21,0xf9a4
.short	0x7b95,0x5dbe,0x846b,0xa242,0xa2cd,0x1e4d,0x5d33,0xe1b3
.short	0x6fe4,0xbbf2,0x901c,0x440e,0xb0df,0x5a5c,0x4f21,0xa5a4
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_avx2_zetas_inv:
.short	0x06a5,0x06a5,0x05b4,0x05b4,0x070f,0x070f,0x0943,0x0943
.short	0x0922,0x0922,0x0134,0x0134,0x091d,0x091d,0x006c,0x006c
.short	0xa5a5,0xa5a5,0xe1b4,0xe1b4,0x440f,0x440f,0xa243,0xa243
.short	0x4f22,0x4f22,0x5d34,0x5d34,0x901d,0x901d,0x846c,0x846c
.short	0x0b23,0x0b23,0x0356,0x0356,0x0366,0x0366,0x05e6,0x05e6
.short	0x09e7,0x09e7,0x05fa,0x05fa,0x04fe,0x04fe,0x04a1,0x04a1
.short	0x4423,0x4423,0xa556,0xa556,0xd566,0xd566,0x57e6,0x57e6
.short	0x4ee7,0x4ee7,0x53fa,0x53fa,0x1efe,0x1efe,0xd7a1,0xd7a1
.short	0x04fb,0x04fb,0x04fb,0x04fb,0x0a5c,0x0a5c,0x0a5c,0x0a5c
.short	0x0429,0x0429,0x0429,0x0429,0x0b41,0x0b41,0x0b41,0x0b41
.short	0x45fb,0x45fb,0x45fb,0x45fb,0x5e5c,0x5e5c,0x5e5c,0x5e5c
.short	0xef29,0xef29,0xef29,0xef29,0xbe41,0xbe41,0xbe41,0xbe41
.short	0x02d5,0x02d5,0x02d5,0x02d5,0x05e4,0x05e4,0x05e4,0x05e4
.short	0x0940,0x0940,0x0940,0x0940,0x018e,0x018e,0x018e,0x018e
.short	0x31d5,0x31d5,0x31d5,0x31d5,0x71e4,0x71e4,0x71e4,0x71e4
.short	0xc940,0xc940,0xc940,0xc940,0xcb8e,0xcb8e,0xcb8e,0xcb8e
.short	0x0623,0x0623,0x0623,0x0623,0x0623,0x0623,0x0623,0x0623
.short	0x00cd,0x00cd,0x00cd,0x00cd,0x00cd,0x00cd,0x00cd,0x00cd
.short	0x3f23,0x3f23,0x3f23,0x3f23,0x3f23,0x3f23,0x3f23,0x3f23
.short	0x97cd,0x97cd,0x97cd,0x97cd,0x97cd,0x97cd,0x97cd,0x97cd
.short	0x0b66,0x0b66,0x0b66,0x0b66,0x0b66,0x0b66,0x0b66,0x0b66
.short	0x0606,0x0606,0x0606,0x0606,0x0606,0x0606,0x0606,0x0606
.short	0xdd66,0xdd66,0xdd66,0xdd66,0xdd66,0xdd66,0xdd66,0xdd66
.short	0xb806,0xb806,0xb806,0xb806,0xb806,0xb806,0xb806,0xb806
.short	0x0745,0x0745,0x0745,0x0745,0x0745,0x0745,0x0745,0x0745
.short	0x0745,0x0745,0x0745,0x0745,0x0745,0x0745,0x0745,0x0745
.short	0x8645,0x8645,0x8645,0x8645,0x8645,0x8645,0x8645,0x8645
.short	0x8645,0x8645,0x8645,0x8645,0x8645,0x8645,0x8645,0x8645
.short	0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2
.short	0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2,0x05c2
.short	0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2
.short	0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2,0x2bc2
.short	0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37
.short	0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37,0x0c37
.short	0x4137,0x4137,0x4137,0x4137,0x4137,0x4137,0x4137,0x4137
.short	0x4137,0x4137,0x4137,0x4137,0x4137,0x4137,0x4137,0x4137
.short	0x067b,0x067b,0x0c25,0x0c25,0x04a3,0x04a3,0x036a,0x036a
.short	0x0537,0x0537,0x0088,0x0088,0x083f,0x083f,0x04bf,0x04bf
.short	0xc77b,0xc77b,0x2b25,0x2b25,0xbda3,0xbda3,0xa16a,0xa16a
.short	0x3a37,0x3a37,0x1888,0x1888,0xd53f,0xd53f,0x51bf,0x51bf
.short	0x0b81,0x0b81,0x0505,0x0505,0x05b9,0x05b9,0x07d7,0x07d7
.short	0x0a9f,0x0a9f,0x08b8,0x08b8,0x0aa6,0x0aa6,0x09d0,0x09d0
.short	0x7e81,0x7e81,0xc405,0xc405,0xa0b9,0xa0b9,0x1cd7,0x1cd7
.short	0xf79f,0xf79f,0xb0b8,0xb0b8,0x9ca6,0x9ca6,0x79d0,0x79d0
.short	0x03b7,0x03b7,0x03b7,0x03b7,0x00f7,0x00f7,0x00f7,0x00f7
.short	0x058d,0x058d,0x058d,0x058d,0x0c96,0x0c96,0x0c96,0x0c96
.short	0xb8b7,0xb8b7,0xb8b7,0xb8b7,0x75f7,0x75f7,0x75f7,0x75f7
.short	0xdc8d,0xdc8d,0xdc8d,0xdc8d,0x6e96,0x6e96,0x6e96,0x6e96
.short	0x09c3,0x09c3,0x09c3,0x09c3,0x010f,0x010f,0x010f,0x010f
.short	0x005a,0x005a,0x005a,0x005a,0x0355,0x0355,0x0355,0x0355
.short	0x22c3,0x22c3,0x22c3,0x22c3,0x3e0f,0x3e0f,0x3e0f,0x3e0f
.short	0x6e5a,0x6e5a,0x6e5a,0x6e5a,0xb255,0xb255,0xb255,0xb255
.short	0x0aa1,0x0aa1,0x0aa1,0x0aa1,0x0aa1,0x0aa1,0x0aa1,0x0aa1
.short	0x0a25,0x0a25,0x0a25,0x0a25,0x0a25,0x0a25,0x0a25,0x0a25
.short	0xdda1,0xdda1,0xdda1,0xdda1,0xdda1,0xdda1,0xdda1,0xdda1
.short	0x2925,0x2925,0x2925,0x2925,0x2925,0x2925,0x2925,0x2925
.short	0x0908,0x0908,0x0908,0x0908,0x0908,0x0908,0x0908,0x0908
.short	0x02a9,0x02a9,0x02a9,0x02a9,0x02a9,0x02a9,0x02a9,0x02a9
.short	0xa108,0xa108,0xa108,0xa108,0xa108,0xa108,0xa108,0xa108
.short	0x6da9,0x6da9,0x6da9,0x6da9,0x6da9,0x6da9,0x6da9,0x6da9
.short	0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2
.short	0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2,0x04b2
.short	0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2
.short	0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2,0xfab2
.short	0x093f,0x093f,0x093f,0x093f,0x093f,0x093f,0x093f,0x093f
.short	0x093f,0x093f,0x093f,0x093f,0x093f,0x093f,0x093f,0x093f
.short	0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f
.short	0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f,0xd63f
.short	0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2
.short	0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2,0x0be2
.short	0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2
.short	0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2,0x91e2
.short	0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed
.short	0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed,0x05ed
.short	0xfced,0xfced,0xfced,0xfced,0xfced,0xfced,0xfced,0xfced
.short	0xfced,0xfced,0xfced,0xfced,0xfced,0xfced,0xfced,0xfced
.short	0x004b,0x004b,0x0bb8,0x0bb8,0x009c,0x009c,0x0b5f,0x0b5f
.short	0x0ba4,0x0ba4,0x0a7d,0x0a7d,0x0368,0x0368,0x0636,0x0636
.short	0x314b,0x314b,0xb3b8,0xb3b8,0x149c,0x149c,0x385f,0x385f
.short	0xb7a4,0xb7a4,0xb17d,0xb17d,0xbb68,0xbb68,0x4836,0x4836
.short	0x08a2,0x08a2,0x0736,0x0736,0x025a,0x025a,0x0309,0x0309
.short	0x0093,0x0093,0x09f7,0x09f7,0x087a,0x087a,0x00f6,0x00f6
.short	0xcea2,0xcea2,0x4936,0x4936,0x705a,0x705a,0x8e09,0x8e09
.short	0x8993,0x8993,0x7ef7,0x7ef7,0xd67a,0xd67a,0x82f6,0x82f6
.short	0x0744,0x0744,0x0744,0x0744,0x0c83,0x0c83,0x0c83,0x0c83
.short	0x048a,0x048a,0x048a,0x048a,0x0652,0x0652,0x0652,0x0652
.short	0x9344,0x9344,0x9344,0x9344,0x6583,0x6583,0x6583,0x6583
.short	0x028a,0x028a,0x028a,0x028a,0xdc52,0xdc52,0xdc52,0xdc52
.short	0x029a,0x029a,0x029a,0x029a,0x0140,0x0140,0x0140,0x0140
.short	0x0008,0x0008,0x0008,0x0008,0x0afd,0x0afd,0x0afd,0x0afd
.short	0x309a,0x309a,0x309a,0x309a,0xc140,0xc140,0xc140,0xc140
.short	0x9808,0x9808,0x9808,0x9808,0x31fd,0x31fd,0x31fd,0x31fd
.short	0x0082,0x0082,0x0082,0x0082,0x0082,0x0082,0x0082,0x0082
.short	0x0642,0x0642,0x0642,0x0642,0x0642,0x0642,0x0642,0x0642
.short	0x6682,0x6682,0x6682,0x6682,0x6682,0x6682,0x6682,0x6682
.short	0xac42,0xac42,0xac42,0xac42,0xac42,0xac42,0xac42,0xac42
.short	0x074f,0x074f,0x074f,0x074f,0x074f,0x074f,0x074f,0x074f
.short	0x033d,0x033d,0x033d,0x033d,0x033d,0x033d,0x033d,0x033d
.short	0x044f,0x044f,0x044f,0x044f,0x044f,0x044f,0x044f,0x044f
.short	0xea3d,0xea3d,0xea3d,0xea3d,0xea3d,0xea3d,0xea3d,0xea3d
.short	0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b
.short	0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b,0x0c4b
.short	0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b
.short	0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b,0x3d4b
.short	0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8
.short	0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8,0x06d8
.short	0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8
.short	0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8,0x0ed8
.short	0x0773,0x0773,0x0773,0x0773,0x0773,0x0773,0x0773,0x0773
.short	0x0773,0x0773,0x0773,0x0773,0x0773,0x0773,0x0773,0x0773
.short	0x3073,0x3073,0x3073,0x3073,0x3073,0x3073,0x3073,0x3073
.short	0x3073,0x3073,0x3073,0x3073,0x3073,0x3073,0x3073,0x3073
.short	0x068c,0x068c,0x01cc,0x01cc,0x06db,0x06db,0x0123,0x0123
.short	0x00eb,0x00eb,0x0ab6,0x0ab6,0x0c50,0x0c50,0x0b5b,0x0b5b
.short	0xea8c,0xea8c,0xa5cc,0xa5cc,0xe7db,0xe7db,0x3a23,0x3a23
.short	0x11eb,0x11eb,0xccb6,0xccb6,0xfc50,0xfc50,0x6c5b,0x6c5b
.short	0x0c98,0x0c98,0x099a,0x099a,0x06f3,0x06f3,0x04e3,0x04e3
.short	0x09b6,0x09b6,0x0b53,0x0b53,0x0ad6,0x0ad6,0x044f,0x044f
.short	0x5498,0x5498,0x379a,0x379a,0xaff3,0xaff3,0x7de3,0x7de3
.short	0xcbb6,0xcbb6,0xd453,0xd453,0x2cd6,0x2cd6,0x014f,0x014f
.short	0x0608,0x0608,0x0608,0x0608,0x011a,0x011a,0x011a,0x011a
.short	0x072e,0x072e,0x072e,0x072e,0x050d,0x050d,0x050d,0x050d
.short	0x9e08,0x9e08,0x9e08,0x9e08,0xaf1a,0xaf1a,0xaf1a,0xaf1a
.short	0xb12e,0xb12e,0xb12e,0xb12e,0x5c0d,0x5c0d,0x5c0d,0x5c0d
.short	0x090a,0x090a,0x090a,0x090a,0x0228,0x0228,0x0228,0x0228
.short	0x0a75,0x0a75,0x0a75,0x0a75,0x083a,0x083a,0x083a,0x083a
.short	0x870a,0x870a,0x870a,0x870a,0xfa28,0xfa28,0xfa28,0xfa28
.short	0x1975,0x1975,0x1975,0x1975,0x163a,0x163a,0x163a,0x163a
.short	0x0b82,0x0b82,0x0b82,0x0b82,0x0b82,0x0b82,0x0b82,0x0b82
.short	0x0bf9,0x0bf9,0x0bf9,0x0bf9,0x0bf9,0x0bf9,0x0bf9,0x0bf9
.short	0x7182,0x7182,0x7182,0x7182,0x7182,0x7182,0x7182,0x7182
.short	0x66f9,0x66f9,0x66f9,0x66f9,0x66f9,0x66f9,0x66f9,0x66f9
.short	0x052d,0x052d,0x052d,0x052d,0x052d,0x052d,0x052d,0x052d
.short	0x0ac4,0x0ac4,0x0ac4,0x0ac4,0x0ac4,0x0ac4,0x0ac4,0x0ac4
.short	0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d
.short	0x16c4,0x16c4,0x16c4,0x16c4,0x16c4,0x16c4,0x16c4,0x16c4
.short	0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93
.short	0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93,0x0a93
.short	0x9393,0x9393,0x9393,0x9393,0x9393,0x9393,0x9393,0x9393
.short	0x9393,0x9393,0x9393,0x9393,0x9393,0x9393,0x9393,0x9393
.short	0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab
.short	0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab,0x00ab
.short	0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab
.short	0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab,0x51ab
.short	0x072c,0x072c,0x072c,0x072c,0x072c,0x072c,0x072c,0x072c
.short	0x072c,0x072c,0x072c,0x072c,0x072c,0x072c,0x072c,0x072c
.short	0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c
.short	0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c,0xcb2c
.short	0x0167,0x0167,0x0167,0x0167,0x0167,0x0167,0x0167,0x0167
.short	0x0167,0x0167,0x0167,0x0167,0x0167,0x0167,0x0167,0x0167
.short	0xc667,0xc667,0xc667,0xc667,0xc667,0xc667,0xc667,0xc667
.short	0xc667,0xc667,0xc667,0xc667,0xc667,0xc667,0xc667,0xc667
.short	0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6
.short	0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6,0x02f6
.short	0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6
.short	0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6,0x84f6
.short	0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1
.short	0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1,0x05a1
.short	0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1
.short	0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1,0xd8a1
#ifndef __APPLE__
.text
.globl	mlkem_keygen_avx2
.type	mlkem_keygen_avx2,@function
.align	16
mlkem_keygen_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_keygen_avx2
.p2align	4
_mlkem_keygen_avx2:
#endif /* __APPLE__ */
        pushq	%r12
        vmovdqu	mlkem_q(%rip), %ymm14
        vmovdqu	mlkem_v(%rip), %ymm15
        movq	%rdi, %r11
        movslq	%r8d, %r9
        movq	%rdi, %r10
L_mlkem_keygen_avx2_priv:
        # ntt
        leaq	L_mlkem_avx2_zetas(%rip), %r12
        vmovdqu	(%r12), %ymm10
        vmovdqu	32(%r12), %ymm12
        vmovdqu	128(%r10), %ymm0
        vmovdqu	160(%r10), %ymm1
        vmovdqu	192(%r10), %ymm2
        vmovdqu	224(%r10), %ymm3
        vmovdqu	384(%r10), %ymm4
        vmovdqu	416(%r10), %ymm5
        vmovdqu	448(%r10), %ymm6
        vmovdqu	480(%r10), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%r10)
        vmovdqu	%ymm1, 160(%r10)
        vmovdqu	%ymm2, 192(%r10)
        vmovdqu	%ymm3, 224(%r10)
        vmovdqu	%ymm4, 384(%r10)
        vmovdqu	%ymm5, 416(%r10)
        vmovdqu	%ymm6, 448(%r10)
        vmovdqu	%ymm7, 480(%r10)
        vmovdqu	(%r10), %ymm0
        vmovdqu	32(%r10), %ymm1
        vmovdqu	64(%r10), %ymm2
        vmovdqu	96(%r10), %ymm3
        vmovdqu	256(%r10), %ymm4
        vmovdqu	288(%r10), %ymm5
        vmovdqu	320(%r10), %ymm6
        vmovdqu	352(%r10), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm4, 256(%r10)
        vmovdqu	%ymm5, 288(%r10)
        vmovdqu	%ymm6, 320(%r10)
        vmovdqu	%ymm7, 352(%r10)
        vmovdqu	128(%r10), %ymm4
        vmovdqu	160(%r10), %ymm5
        vmovdqu	192(%r10), %ymm6
        vmovdqu	224(%r10), %ymm7
        # 64: 0/3
        vmovdqu	64(%r12), %ymm10
        vmovdqu	96(%r12), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 0/3
        vmovdqu	128(%r12), %ymm10
        vmovdqu	160(%r12), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 0/3
        vmovdqu	192(%r12), %ymm10
        vmovdqu	224(%r12), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 0/3
        vmovdqu	256(%r12), %ymm10
        vmovdqu	288(%r12), %ymm12
        vmovdqu	320(%r12), %ymm11
        vmovdqu	352(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 0/3
        vmovdqu	384(%r12), %ymm10
        vmovdqu	416(%r12), %ymm12
        vmovdqu	448(%r12), %ymm11
        vmovdqu	480(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 0/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	512(%r12), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	544(%r12), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	576(%r12), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	608(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	640(%r12), %ymm10
        vmovdqu	672(%r12), %ymm12
        vmovdqu	704(%r12), %ymm11
        vmovdqu	736(%r12), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 0/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	768(%r12), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	800(%r12), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	832(%r12), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	864(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	896(%r12), %ymm10
        vmovdqu	928(%r12), %ymm12
        vmovdqu	960(%r12), %ymm11
        vmovdqu	992(%r12), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 0/3
        vmovdqu	1024(%r12), %ymm10
        vmovdqu	1056(%r12), %ymm12
        vmovdqu	1088(%r12), %ymm11
        vmovdqu	1120(%r12), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 0/3
        vmovdqu	1152(%r12), %ymm10
        vmovdqu	1184(%r12), %ymm12
        vmovdqu	1216(%r12), %ymm11
        vmovdqu	1248(%r12), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, (%r10)
        vmovdqu	%ymm9, 32(%r10)
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 64(%r10)
        vmovdqu	%ymm9, 96(%r10)
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 128(%r10)
        vmovdqu	%ymm9, 160(%r10)
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 192(%r10)
        vmovdqu	%ymm9, 224(%r10)
        vmovdqu	256(%r10), %ymm0
        vmovdqu	288(%r10), %ymm1
        vmovdqu	320(%r10), %ymm2
        vmovdqu	352(%r10), %ymm3
        vmovdqu	384(%r10), %ymm4
        vmovdqu	416(%r10), %ymm5
        vmovdqu	448(%r10), %ymm6
        vmovdqu	480(%r10), %ymm7
        # 64: 1/3
        vmovdqu	1280(%r12), %ymm10
        vmovdqu	1312(%r12), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 1/3
        vmovdqu	1344(%r12), %ymm10
        vmovdqu	1376(%r12), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 1/3
        vmovdqu	1408(%r12), %ymm10
        vmovdqu	1440(%r12), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 1/3
        vmovdqu	1472(%r12), %ymm10
        vmovdqu	1504(%r12), %ymm12
        vmovdqu	1536(%r12), %ymm11
        vmovdqu	1568(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 1/3
        vmovdqu	1600(%r12), %ymm10
        vmovdqu	1632(%r12), %ymm12
        vmovdqu	1664(%r12), %ymm11
        vmovdqu	1696(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 1/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1728(%r12), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1760(%r12), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1792(%r12), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1824(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	1856(%r12), %ymm10
        vmovdqu	1888(%r12), %ymm12
        vmovdqu	1920(%r12), %ymm11
        vmovdqu	1952(%r12), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 1/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1984(%r12), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2016(%r12), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2048(%r12), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2080(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	2112(%r12), %ymm10
        vmovdqu	2144(%r12), %ymm12
        vmovdqu	2176(%r12), %ymm11
        vmovdqu	2208(%r12), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 1/3
        vmovdqu	2240(%r12), %ymm10
        vmovdqu	2272(%r12), %ymm12
        vmovdqu	2304(%r12), %ymm11
        vmovdqu	2336(%r12), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 1/3
        vmovdqu	2368(%r12), %ymm10
        vmovdqu	2400(%r12), %ymm12
        vmovdqu	2432(%r12), %ymm11
        vmovdqu	2464(%r12), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, 256(%r10)
        vmovdqu	%ymm9, 288(%r10)
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 320(%r10)
        vmovdqu	%ymm9, 352(%r10)
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 384(%r10)
        vmovdqu	%ymm9, 416(%r10)
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 448(%r10)
        vmovdqu	%ymm9, 480(%r10)
        addq	$0x200, %r10
        subq	$0x01, %r9
        jg	L_mlkem_keygen_avx2_priv
        vmovdqu	mlkem_qinv(%rip), %ymm13
        movslq	%r8d, %rax
        movq	%rsi, %r10
L_mlkem_keygen_avx2_acc:
        # Pointwise acc mont
        movslq	%r8d, %r9
        # Base mul mont
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r12
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdi), %ymm4
        vmovdqu	32(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r12), %ymm10
        vmovdqu	32(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, (%r10)
        vmovdqu	%ymm1, 32(%r10)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdi), %ymm4
        vmovdqu	96(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r12), %ymm10
        vmovdqu	96(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%r10)
        vmovdqu	%ymm1, 96(%r10)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r12), %ymm10
        vmovdqu	160(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%r10)
        vmovdqu	%ymm1, 160(%r10)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdi), %ymm4
        vmovdqu	224(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r12), %ymm10
        vmovdqu	224(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%r10)
        vmovdqu	%ymm1, 224(%r10)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdi), %ymm4
        vmovdqu	288(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r12), %ymm10
        vmovdqu	288(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%r10)
        vmovdqu	%ymm1, 288(%r10)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdi), %ymm4
        vmovdqu	352(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r12), %ymm10
        vmovdqu	352(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%r10)
        vmovdqu	%ymm1, 352(%r10)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r12), %ymm10
        vmovdqu	416(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%r10)
        vmovdqu	%ymm1, 416(%r10)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdi), %ymm4
        vmovdqu	480(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r12), %ymm10
        vmovdqu	480(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%r10)
        vmovdqu	%ymm1, 480(%r10)
        addq	$0x200, %rcx
        addq	$0x200, %rdi
        subq	$2, %r9
        jz	L_pointwise_acc_mont_end_keygen
L_pointwise_acc_mont_start_keygen:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r12
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdi), %ymm4
        vmovdqu	32(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r12), %ymm10
        vmovdqu	32(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%r10), %ymm6
        vmovdqu	32(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%r10)
        vmovdqu	%ymm1, 32(%r10)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdi), %ymm4
        vmovdqu	96(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r12), %ymm10
        vmovdqu	96(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%r10), %ymm6
        vmovdqu	96(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%r10)
        vmovdqu	%ymm1, 96(%r10)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r12), %ymm10
        vmovdqu	160(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%r10), %ymm6
        vmovdqu	160(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%r10)
        vmovdqu	%ymm1, 160(%r10)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdi), %ymm4
        vmovdqu	224(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r12), %ymm10
        vmovdqu	224(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%r10), %ymm6
        vmovdqu	224(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%r10)
        vmovdqu	%ymm1, 224(%r10)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdi), %ymm4
        vmovdqu	288(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r12), %ymm10
        vmovdqu	288(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%r10), %ymm6
        vmovdqu	288(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%r10)
        vmovdqu	%ymm1, 288(%r10)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdi), %ymm4
        vmovdqu	352(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r12), %ymm10
        vmovdqu	352(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%r10), %ymm6
        vmovdqu	352(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%r10)
        vmovdqu	%ymm1, 352(%r10)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r12), %ymm10
        vmovdqu	416(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%r10), %ymm6
        vmovdqu	416(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%r10)
        vmovdqu	%ymm1, 416(%r10)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdi), %ymm4
        vmovdqu	480(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r12), %ymm10
        vmovdqu	480(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%r10), %ymm6
        vmovdqu	480(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%r10)
        vmovdqu	%ymm1, 480(%r10)
        addq	$0x200, %rcx
        addq	$0x200, %rdi
        subq	$0x01, %r9
        jg	L_pointwise_acc_mont_start_keygen
L_pointwise_acc_mont_end_keygen:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r12
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdi), %ymm4
        vmovdqu	32(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r12), %ymm10
        vmovdqu	32(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%r10), %ymm6
        vmovdqu	32(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%r10)
        vmovdqu	%ymm1, 32(%r10)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdi), %ymm4
        vmovdqu	96(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r12), %ymm10
        vmovdqu	96(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%r10), %ymm6
        vmovdqu	96(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%r10)
        vmovdqu	%ymm1, 96(%r10)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdi), %ymm4
        vmovdqu	160(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r12), %ymm10
        vmovdqu	160(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%r10), %ymm6
        vmovdqu	160(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%r10)
        vmovdqu	%ymm1, 160(%r10)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdi), %ymm4
        vmovdqu	224(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r12), %ymm10
        vmovdqu	224(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%r10), %ymm6
        vmovdqu	224(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%r10)
        vmovdqu	%ymm1, 224(%r10)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdi), %ymm4
        vmovdqu	288(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r12), %ymm10
        vmovdqu	288(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%r10), %ymm6
        vmovdqu	288(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%r10)
        vmovdqu	%ymm1, 288(%r10)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdi), %ymm4
        vmovdqu	352(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r12), %ymm10
        vmovdqu	352(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%r10), %ymm6
        vmovdqu	352(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%r10)
        vmovdqu	%ymm1, 352(%r10)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdi), %ymm4
        vmovdqu	416(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r12), %ymm10
        vmovdqu	416(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%r10), %ymm6
        vmovdqu	416(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%r10)
        vmovdqu	%ymm1, 416(%r10)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdi), %ymm4
        vmovdqu	480(%rdi), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r12), %ymm10
        vmovdqu	480(%r12), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm13, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%r10), %ymm6
        vmovdqu	480(%r10), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%r10)
        vmovdqu	%ymm1, 480(%r10)
        addq	$0x200, %rcx
        movq	%r11, %rdi
        addq	$0x200, %r10
        subq	$0x01, %rax
        jg	L_mlkem_keygen_avx2_acc
        movslq	%r8d, %rax
        vmovdqu	mlkem_f(%rip), %ymm12
        vmovdqu	mlkem_f_qinv(%rip), %ymm13
        movslq	%r8d, %rax
        movq	%rsi, %r10
L_mlkem_keygen_avx2_to_mont:
        # To Mont
        vmovdqu	(%r10), %ymm0
        vmovdqu	32(%r10), %ymm1
        vmovdqu	64(%r10), %ymm2
        vmovdqu	96(%r10), %ymm3
        vpmullw	%ymm13, %ymm0, %ymm4
        vpmulhw	%ymm12, %ymm0, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm0
        vpmullw	%ymm13, %ymm1, %ymm4
        vpmulhw	%ymm12, %ymm1, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm4
        vpmulhw	%ymm12, %ymm2, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm2
        vpmullw	%ymm13, %ymm3, %ymm4
        vpmulhw	%ymm12, %ymm3, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm3
        vmovdqu	%ymm0, (%r10)
        vmovdqu	%ymm1, 32(%r10)
        vmovdqu	%ymm2, 64(%r10)
        vmovdqu	%ymm3, 96(%r10)
        vmovdqu	128(%r10), %ymm0
        vmovdqu	160(%r10), %ymm1
        vmovdqu	192(%r10), %ymm2
        vmovdqu	224(%r10), %ymm3
        vpmullw	%ymm13, %ymm0, %ymm4
        vpmulhw	%ymm12, %ymm0, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm0
        vpmullw	%ymm13, %ymm1, %ymm4
        vpmulhw	%ymm12, %ymm1, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm4
        vpmulhw	%ymm12, %ymm2, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm2
        vpmullw	%ymm13, %ymm3, %ymm4
        vpmulhw	%ymm12, %ymm3, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm3
        vmovdqu	%ymm0, 128(%r10)
        vmovdqu	%ymm1, 160(%r10)
        vmovdqu	%ymm2, 192(%r10)
        vmovdqu	%ymm3, 224(%r10)
        vmovdqu	256(%r10), %ymm0
        vmovdqu	288(%r10), %ymm1
        vmovdqu	320(%r10), %ymm2
        vmovdqu	352(%r10), %ymm3
        vpmullw	%ymm13, %ymm0, %ymm4
        vpmulhw	%ymm12, %ymm0, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm0
        vpmullw	%ymm13, %ymm1, %ymm4
        vpmulhw	%ymm12, %ymm1, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm4
        vpmulhw	%ymm12, %ymm2, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm2
        vpmullw	%ymm13, %ymm3, %ymm4
        vpmulhw	%ymm12, %ymm3, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm3
        vmovdqu	%ymm0, 256(%r10)
        vmovdqu	%ymm1, 288(%r10)
        vmovdqu	%ymm2, 320(%r10)
        vmovdqu	%ymm3, 352(%r10)
        vmovdqu	384(%r10), %ymm0
        vmovdqu	416(%r10), %ymm1
        vmovdqu	448(%r10), %ymm2
        vmovdqu	480(%r10), %ymm3
        vpmullw	%ymm13, %ymm0, %ymm4
        vpmulhw	%ymm12, %ymm0, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm0
        vpmullw	%ymm13, %ymm1, %ymm4
        vpmulhw	%ymm12, %ymm1, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm4
        vpmulhw	%ymm12, %ymm2, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm2
        vpmullw	%ymm13, %ymm3, %ymm4
        vpmulhw	%ymm12, %ymm3, %ymm5
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpsubw	%ymm4, %ymm5, %ymm3
        vmovdqu	%ymm0, 384(%r10)
        vmovdqu	%ymm1, 416(%r10)
        vmovdqu	%ymm2, 448(%r10)
        vmovdqu	%ymm3, 480(%r10)
        addq	$0x200, %r10
        subq	$0x01, %rax
        jg	L_mlkem_keygen_avx2_to_mont
        movslq	%r8d, %rax
L_mlkem_keygen_avx2_to_mont_ntt_err:
        # ntt
        leaq	L_mlkem_avx2_zetas(%rip), %r12
        vmovdqu	(%r12), %ymm10
        vmovdqu	32(%r12), %ymm12
        vmovdqu	128(%rdx), %ymm0
        vmovdqu	160(%rdx), %ymm1
        vmovdqu	192(%rdx), %ymm2
        vmovdqu	224(%rdx), %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	480(%rdx), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	%ymm2, 192(%rdx)
        vmovdqu	%ymm3, 224(%rdx)
        vmovdqu	%ymm4, 384(%rdx)
        vmovdqu	%ymm5, 416(%rdx)
        vmovdqu	%ymm6, 448(%rdx)
        vmovdqu	%ymm7, 480(%rdx)
        vmovdqu	(%rdx), %ymm0
        vmovdqu	32(%rdx), %ymm1
        vmovdqu	64(%rdx), %ymm2
        vmovdqu	96(%rdx), %ymm3
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm5
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	352(%rdx), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm4, 256(%rdx)
        vmovdqu	%ymm5, 288(%rdx)
        vmovdqu	%ymm6, 320(%rdx)
        vmovdqu	%ymm7, 352(%rdx)
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm5
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	224(%rdx), %ymm7
        # 64: 0/3
        vmovdqu	64(%r12), %ymm10
        vmovdqu	96(%r12), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 0/3
        vmovdqu	128(%r12), %ymm10
        vmovdqu	160(%r12), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 0/3
        vmovdqu	192(%r12), %ymm10
        vmovdqu	224(%r12), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 0/3
        vmovdqu	256(%r12), %ymm10
        vmovdqu	288(%r12), %ymm12
        vmovdqu	320(%r12), %ymm11
        vmovdqu	352(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 0/3
        vmovdqu	384(%r12), %ymm10
        vmovdqu	416(%r12), %ymm12
        vmovdqu	448(%r12), %ymm11
        vmovdqu	480(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 0/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	512(%r12), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	544(%r12), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	576(%r12), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	608(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	640(%r12), %ymm10
        vmovdqu	672(%r12), %ymm12
        vmovdqu	704(%r12), %ymm11
        vmovdqu	736(%r12), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 0/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	768(%r12), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	800(%r12), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	832(%r12), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	864(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	896(%r12), %ymm10
        vmovdqu	928(%r12), %ymm12
        vmovdqu	960(%r12), %ymm11
        vmovdqu	992(%r12), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 0/3
        vmovdqu	1024(%r12), %ymm10
        vmovdqu	1056(%r12), %ymm12
        vmovdqu	1088(%r12), %ymm11
        vmovdqu	1120(%r12), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 0/3
        vmovdqu	1152(%r12), %ymm10
        vmovdqu	1184(%r12), %ymm12
        vmovdqu	1216(%r12), %ymm11
        vmovdqu	1248(%r12), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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	(%rsi), %ymm8
        vmovdqu	32(%rsi), %ymm9
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, (%rsi)
        vmovdqu	%ymm9, 32(%rsi)
        vmovdqu	64(%rsi), %ymm8
        vmovdqu	96(%rsi), %ymm9
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 64(%rsi)
        vmovdqu	%ymm9, 96(%rsi)
        vmovdqu	128(%rsi), %ymm8
        vmovdqu	160(%rsi), %ymm9
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 128(%rsi)
        vmovdqu	%ymm9, 160(%rsi)
        vmovdqu	192(%rsi), %ymm8
        vmovdqu	224(%rsi), %ymm9
        vpaddw	%ymm8, %ymm6, %ymm6
        vpaddw	%ymm9, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 192(%rsi)
        vmovdqu	%ymm9, 224(%rsi)
        vmovdqu	256(%rdx), %ymm0
        vmovdqu	288(%rdx), %ymm1
        vmovdqu	320(%rdx), %ymm2
        vmovdqu	352(%rdx), %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	480(%rdx), %ymm7
        # 64: 1/3
        vmovdqu	1280(%r12), %ymm10
        vmovdqu	1312(%r12), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 1/3
        vmovdqu	1344(%r12), %ymm10
        vmovdqu	1376(%r12), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 1/3
        vmovdqu	1408(%r12), %ymm10
        vmovdqu	1440(%r12), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 1/3
        vmovdqu	1472(%r12), %ymm10
        vmovdqu	1504(%r12), %ymm12
        vmovdqu	1536(%r12), %ymm11
        vmovdqu	1568(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 1/3
        vmovdqu	1600(%r12), %ymm10
        vmovdqu	1632(%r12), %ymm12
        vmovdqu	1664(%r12), %ymm11
        vmovdqu	1696(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 1/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1728(%r12), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1760(%r12), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1792(%r12), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1824(%r12), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	1856(%r12), %ymm10
        vmovdqu	1888(%r12), %ymm12
        vmovdqu	1920(%r12), %ymm11
        vmovdqu	1952(%r12), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 1/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1984(%r12), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2016(%r12), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2048(%r12), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2080(%r12), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	2112(%r12), %ymm10
        vmovdqu	2144(%r12), %ymm12
        vmovdqu	2176(%r12), %ymm11
        vmovdqu	2208(%r12), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 1/3
        vmovdqu	2240(%r12), %ymm10
        vmovdqu	2272(%r12), %ymm12
        vmovdqu	2304(%r12), %ymm11
        vmovdqu	2336(%r12), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 1/3
        vmovdqu	2368(%r12), %ymm10
        vmovdqu	2400(%r12), %ymm12
        vmovdqu	2432(%r12), %ymm11
        vmovdqu	2464(%r12), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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	256(%rsi), %ymm8
        vmovdqu	288(%rsi), %ymm9
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, 256(%rsi)
        vmovdqu	%ymm9, 288(%rsi)
        vmovdqu	320(%rsi), %ymm8
        vmovdqu	352(%rsi), %ymm9
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 320(%rsi)
        vmovdqu	%ymm9, 352(%rsi)
        vmovdqu	384(%rsi), %ymm8
        vmovdqu	416(%rsi), %ymm9
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 384(%rsi)
        vmovdqu	%ymm9, 416(%rsi)
        vmovdqu	448(%rsi), %ymm8
        vmovdqu	480(%rsi), %ymm9
        vpaddw	%ymm8, %ymm6, %ymm6
        vpaddw	%ymm9, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 448(%rsi)
        vmovdqu	%ymm9, 480(%rsi)
        addq	$0x200, %rdx
        addq	$0x200, %rsi
        subq	$0x01, %rax
        jg	L_mlkem_keygen_avx2_to_mont_ntt_err
        vzeroupper
        popq	%r12
        repz retq
#ifndef __APPLE__
.size	mlkem_keygen_avx2,.-mlkem_keygen_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_encapsulate_avx2
.type	mlkem_encapsulate_avx2,@function
.align	16
mlkem_encapsulate_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_encapsulate_avx2
.p2align	4
_mlkem_encapsulate_avx2:
#endif /* __APPLE__ */
        pushq	%r12
        pushq	%r13
        pushq	%r14
        pushq	%r15
        pushq	%rbx
        movq	48(%rsp), %rax
        movq	56(%rsp), %r10
        movq	64(%rsp), %r11
        subq	$48, %rsp
        vmovdqu	mlkem_q(%rip), %ymm14
        vmovdqu	mlkem_v(%rip), %ymm15
        movq	%r8, %r15
        movslq	%r11d, %r13
        movq	%r8, %r14
L_mlkem_encapsulate_avx2_trans:
        # ntt
        leaq	L_mlkem_avx2_zetas(%rip), %rbx
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm12
        vmovdqu	128(%r14), %ymm0
        vmovdqu	160(%r14), %ymm1
        vmovdqu	192(%r14), %ymm2
        vmovdqu	224(%r14), %ymm3
        vmovdqu	384(%r14), %ymm4
        vmovdqu	416(%r14), %ymm5
        vmovdqu	448(%r14), %ymm6
        vmovdqu	480(%r14), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%r14)
        vmovdqu	%ymm1, 160(%r14)
        vmovdqu	%ymm2, 192(%r14)
        vmovdqu	%ymm3, 224(%r14)
        vmovdqu	%ymm4, 384(%r14)
        vmovdqu	%ymm5, 416(%r14)
        vmovdqu	%ymm6, 448(%r14)
        vmovdqu	%ymm7, 480(%r14)
        vmovdqu	(%r14), %ymm0
        vmovdqu	32(%r14), %ymm1
        vmovdqu	64(%r14), %ymm2
        vmovdqu	96(%r14), %ymm3
        vmovdqu	256(%r14), %ymm4
        vmovdqu	288(%r14), %ymm5
        vmovdqu	320(%r14), %ymm6
        vmovdqu	352(%r14), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm4, 256(%r14)
        vmovdqu	%ymm5, 288(%r14)
        vmovdqu	%ymm6, 320(%r14)
        vmovdqu	%ymm7, 352(%r14)
        vmovdqu	128(%r14), %ymm4
        vmovdqu	160(%r14), %ymm5
        vmovdqu	192(%r14), %ymm6
        vmovdqu	224(%r14), %ymm7
        # 64: 0/3
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 0/3
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 0/3
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 0/3
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm12
        vmovdqu	320(%rbx), %ymm11
        vmovdqu	352(%rbx), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 0/3
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm12
        vmovdqu	448(%rbx), %ymm11
        vmovdqu	480(%rbx), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 0/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	512(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	544(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	576(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	608(%rbx), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	640(%rbx), %ymm10
        vmovdqu	672(%rbx), %ymm12
        vmovdqu	704(%rbx), %ymm11
        vmovdqu	736(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 0/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	768(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	800(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	832(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	864(%rbx), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	896(%rbx), %ymm10
        vmovdqu	928(%rbx), %ymm12
        vmovdqu	960(%rbx), %ymm11
        vmovdqu	992(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 0/3
        vmovdqu	1024(%rbx), %ymm10
        vmovdqu	1056(%rbx), %ymm12
        vmovdqu	1088(%rbx), %ymm11
        vmovdqu	1120(%rbx), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 0/3
        vmovdqu	1152(%rbx), %ymm10
        vmovdqu	1184(%rbx), %ymm12
        vmovdqu	1216(%rbx), %ymm11
        vmovdqu	1248(%rbx), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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, (%r14)
        vmovdqu	%ymm1, 32(%r14)
        vmovdqu	%ymm2, 64(%r14)
        vmovdqu	%ymm3, 96(%r14)
        vmovdqu	%ymm4, 128(%r14)
        vmovdqu	%ymm5, 160(%r14)
        vmovdqu	%ymm6, 192(%r14)
        vmovdqu	%ymm7, 224(%r14)
        vmovdqu	256(%r14), %ymm0
        vmovdqu	288(%r14), %ymm1
        vmovdqu	320(%r14), %ymm2
        vmovdqu	352(%r14), %ymm3
        vmovdqu	384(%r14), %ymm4
        vmovdqu	416(%r14), %ymm5
        vmovdqu	448(%r14), %ymm6
        vmovdqu	480(%r14), %ymm7
        # 64: 1/3
        vmovdqu	1280(%rbx), %ymm10
        vmovdqu	1312(%rbx), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 1/3
        vmovdqu	1344(%rbx), %ymm10
        vmovdqu	1376(%rbx), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 1/3
        vmovdqu	1408(%rbx), %ymm10
        vmovdqu	1440(%rbx), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 1/3
        vmovdqu	1472(%rbx), %ymm10
        vmovdqu	1504(%rbx), %ymm12
        vmovdqu	1536(%rbx), %ymm11
        vmovdqu	1568(%rbx), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 1/3
        vmovdqu	1600(%rbx), %ymm10
        vmovdqu	1632(%rbx), %ymm12
        vmovdqu	1664(%rbx), %ymm11
        vmovdqu	1696(%rbx), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 1/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1728(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1760(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1792(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1824(%rbx), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	1856(%rbx), %ymm10
        vmovdqu	1888(%rbx), %ymm12
        vmovdqu	1920(%rbx), %ymm11
        vmovdqu	1952(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 1/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1984(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2016(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2048(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2080(%rbx), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	2112(%rbx), %ymm10
        vmovdqu	2144(%rbx), %ymm12
        vmovdqu	2176(%rbx), %ymm11
        vmovdqu	2208(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 1/3
        vmovdqu	2240(%rbx), %ymm10
        vmovdqu	2272(%rbx), %ymm12
        vmovdqu	2304(%rbx), %ymm11
        vmovdqu	2336(%rbx), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 1/3
        vmovdqu	2368(%rbx), %ymm10
        vmovdqu	2400(%rbx), %ymm12
        vmovdqu	2432(%rbx), %ymm11
        vmovdqu	2464(%rbx), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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(%r14)
        vmovdqu	%ymm1, 288(%r14)
        vmovdqu	%ymm2, 320(%r14)
        vmovdqu	%ymm3, 352(%r14)
        vmovdqu	%ymm4, 384(%r14)
        vmovdqu	%ymm5, 416(%r14)
        vmovdqu	%ymm6, 448(%r14)
        vmovdqu	%ymm7, 480(%r14)
        addq	$0x200, %r14
        subq	$0x01, %r13
        jg	L_mlkem_encapsulate_avx2_trans
        movslq	%r11d, %r12
L_mlkem_encapsulate_avx2_calc:
        vmovdqu	mlkem_qinv(%rip), %ymm12
        # Pointwise acc mont
        movslq	%r11d, %r13
        # Base mul mont
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rcx
        addq	$0x200, %r8
        subq	$2, %r13
        jz	L_pointwise_acc_mont_end_encap_bp
L_pointwise_acc_mont_start_encap_bp:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rsi), %ymm6
        vmovdqu	32(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rsi), %ymm6
        vmovdqu	96(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rsi), %ymm6
        vmovdqu	160(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rsi), %ymm6
        vmovdqu	288(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rsi), %ymm6
        vmovdqu	416(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rcx
        addq	$0x200, %r8
        subq	$0x01, %r13
        jg	L_pointwise_acc_mont_start_encap_bp
L_pointwise_acc_mont_end_encap_bp:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rcx), %ymm2
        vmovdqu	32(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rsi), %ymm6
        vmovdqu	32(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rcx), %ymm2
        vmovdqu	96(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rsi), %ymm6
        vmovdqu	96(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rcx), %ymm2
        vmovdqu	160(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rsi), %ymm6
        vmovdqu	160(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rcx), %ymm2
        vmovdqu	224(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rcx), %ymm2
        vmovdqu	288(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rsi), %ymm6
        vmovdqu	288(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rcx), %ymm2
        vmovdqu	352(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rcx), %ymm2
        vmovdqu	416(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rsi), %ymm6
        vmovdqu	416(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rcx), %ymm2
        vmovdqu	480(%rcx), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rcx
        movq	%r15, %r8
        # invntt
        leaq	L_mlkem_avx2_zetas_inv(%rip), %rbx
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	128(%rsi), %ymm4
        vmovdqu	160(%rsi), %ymm5
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        # 2: 1/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	32(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	64(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	96(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 1/2
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm12
        vmovdqu	192(%rbx), %ymm11
        vmovdqu	224(%rbx), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 1/2
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm12
        vmovdqu	320(%rbx), %ymm11
        vmovdqu	352(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 1/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	384(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	416(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	448(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	480(%rbx), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 1/2
        vmovdqu	512(%rbx), %ymm10
        vmovdqu	544(%rbx), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 1/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	576(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	608(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	640(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	672(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 1/2
        vmovdqu	704(%rbx), %ymm10
        vmovdqu	736(%rbx), %ymm12
        vmovdqu	768(%rbx), %ymm11
        vmovdqu	800(%rbx), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 1/2
        vmovdqu	832(%rbx), %ymm10
        vmovdqu	864(%rbx), %ymm12
        vmovdqu	896(%rbx), %ymm11
        vmovdqu	928(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 1/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	960(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	992(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	1024(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	1056(%rbx), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 1/2
        vmovdqu	1088(%rbx), %ymm10
        vmovdqu	1120(%rbx), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 1/2
        vmovdqu	1152(%rbx), %ymm10
        vmovdqu	1184(%rbx), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %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)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vmovdqu	320(%rsi), %ymm2
        vmovdqu	352(%rsi), %ymm3
        vmovdqu	384(%rsi), %ymm4
        vmovdqu	416(%rsi), %ymm5
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        # 2: 2/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1216(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	1248(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	1280(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	1312(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 2/2
        vmovdqu	1344(%rbx), %ymm10
        vmovdqu	1376(%rbx), %ymm12
        vmovdqu	1408(%rbx), %ymm11
        vmovdqu	1440(%rbx), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 2/2
        vmovdqu	1472(%rbx), %ymm10
        vmovdqu	1504(%rbx), %ymm12
        vmovdqu	1536(%rbx), %ymm11
        vmovdqu	1568(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 2/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	1600(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	1632(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	1664(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	1696(%rbx), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 2/2
        vmovdqu	1728(%rbx), %ymm10
        vmovdqu	1760(%rbx), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 2/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1792(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	1824(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	1856(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	1888(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 2/2
        vmovdqu	1920(%rbx), %ymm10
        vmovdqu	1952(%rbx), %ymm12
        vmovdqu	1984(%rbx), %ymm11
        vmovdqu	2016(%rbx), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 2/2
        vmovdqu	2048(%rbx), %ymm10
        vmovdqu	2080(%rbx), %ymm12
        vmovdqu	2112(%rbx), %ymm11
        vmovdqu	2144(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 2/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	2176(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	2208(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	2240(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	2272(%rbx), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 2/2
        vmovdqu	2304(%rbx), %ymm10
        vmovdqu	2336(%rbx), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 2/2
        vmovdqu	2368(%rbx), %ymm10
        vmovdqu	2400(%rbx), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %ymm7
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	%ymm2, 320(%rsi)
        vmovdqu	%ymm3, 352(%rsi)
        # 128
        vmovdqu	2432(%rbx), %ymm10
        vmovdqu	2464(%rbx), %ymm12
        vmovdqu	2496(%rbx), %ymm11
        vmovdqu	2528(%rbx), %ymm13
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm1
        vmovdqu	192(%rsi), %ymm2
        vmovdqu	224(%rsi), %ymm3
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	%ymm2, 192(%rsi)
        vmovdqu	%ymm3, 224(%rsi)
        vmovdqu	%ymm4, 384(%rsi)
        vmovdqu	%ymm5, 416(%rsi)
        vmovdqu	%ymm6, 448(%rsi)
        vmovdqu	%ymm7, 480(%rsi)
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	256(%rsi), %ymm4
        vmovdqu	288(%rsi), %ymm5
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	%ymm2, 64(%rsi)
        vmovdqu	%ymm3, 96(%rsi)
        vmovdqu	%ymm4, 256(%rsi)
        vmovdqu	%ymm5, 288(%rsi)
        vmovdqu	%ymm6, 320(%rsi)
        vmovdqu	%ymm7, 352(%rsi)
        # Add Errors
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	(%r9), %ymm4
        vmovdqu	32(%r9), %ymm5
        vmovdqu	64(%r9), %ymm6
        vmovdqu	96(%r9), %ymm7
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	%ymm2, 64(%rsi)
        vmovdqu	%ymm3, 96(%rsi)
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm1
        vmovdqu	192(%rsi), %ymm2
        vmovdqu	224(%rsi), %ymm3
        vmovdqu	128(%r9), %ymm4
        vmovdqu	160(%r9), %ymm5
        vmovdqu	192(%r9), %ymm6
        vmovdqu	224(%r9), %ymm7
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	%ymm2, 192(%rsi)
        vmovdqu	%ymm3, 224(%rsi)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vmovdqu	320(%rsi), %ymm2
        vmovdqu	352(%rsi), %ymm3
        vmovdqu	256(%r9), %ymm4
        vmovdqu	288(%r9), %ymm5
        vmovdqu	320(%r9), %ymm6
        vmovdqu	352(%r9), %ymm7
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	%ymm2, 320(%rsi)
        vmovdqu	%ymm3, 352(%rsi)
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	416(%rsi), %ymm1
        vmovdqu	448(%rsi), %ymm2
        vmovdqu	480(%rsi), %ymm3
        vmovdqu	384(%r9), %ymm4
        vmovdqu	416(%r9), %ymm5
        vmovdqu	448(%r9), %ymm6
        vmovdqu	480(%r9), %ymm7
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	%ymm2, 448(%rsi)
        vmovdqu	%ymm3, 480(%rsi)
        addq	$0x200, %r9
        addq	$0x200, %rsi
        subq	$0x01, %r12
        jg	L_mlkem_encapsulate_avx2_calc
        vmovdqu	mlkem_qinv(%rip), %ymm12
        # Pointwise acc mont
        movslq	%r11d, %r13
        # Base mul mont
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rdx)
        vmovdqu	%ymm1, 96(%rdx)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rdx)
        vmovdqu	%ymm1, 224(%rdx)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rdx)
        vmovdqu	%ymm1, 288(%rdx)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rdx)
        vmovdqu	%ymm1, 352(%rdx)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rdx)
        vmovdqu	%ymm1, 416(%rdx)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rdx)
        vmovdqu	%ymm1, 480(%rdx)
        addq	$0x200, %rdi
        addq	$0x200, %r8
        subq	$2, %r13
        jz	L_pointwise_acc_mont_end_encap_v
L_pointwise_acc_mont_start_encap_v:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rdx), %ymm6
        vmovdqu	32(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rdx), %ymm6
        vmovdqu	96(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rdx)
        vmovdqu	%ymm1, 96(%rdx)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rdx), %ymm6
        vmovdqu	160(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	224(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rdx)
        vmovdqu	%ymm1, 224(%rdx)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rdx), %ymm6
        vmovdqu	288(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rdx)
        vmovdqu	%ymm1, 288(%rdx)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	352(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rdx)
        vmovdqu	%ymm1, 352(%rdx)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rdx), %ymm6
        vmovdqu	416(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rdx)
        vmovdqu	%ymm1, 416(%rdx)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	480(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rdx)
        vmovdqu	%ymm1, 480(%rdx)
        addq	$0x200, %rdi
        addq	$0x200, %r8
        subq	$0x01, %r13
        jg	L_pointwise_acc_mont_start_encap_v
L_pointwise_acc_mont_end_encap_v:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %rbx
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%r8), %ymm4
        vmovdqu	32(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%rbx), %ymm10
        vmovdqu	32(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rdx), %ymm6
        vmovdqu	32(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%r8), %ymm4
        vmovdqu	96(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%rbx), %ymm10
        vmovdqu	96(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rdx), %ymm6
        vmovdqu	96(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rdx)
        vmovdqu	%ymm1, 96(%rdx)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%r8), %ymm4
        vmovdqu	160(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rdx), %ymm6
        vmovdqu	160(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%r8), %ymm4
        vmovdqu	224(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%rbx), %ymm10
        vmovdqu	224(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	224(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rdx)
        vmovdqu	%ymm1, 224(%rdx)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%r8), %ymm4
        vmovdqu	288(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rdx), %ymm6
        vmovdqu	288(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rdx)
        vmovdqu	%ymm1, 288(%rdx)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%r8), %ymm4
        vmovdqu	352(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%rbx), %ymm10
        vmovdqu	352(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	352(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rdx)
        vmovdqu	%ymm1, 352(%rdx)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%r8), %ymm4
        vmovdqu	416(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%rbx), %ymm10
        vmovdqu	416(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rdx), %ymm6
        vmovdqu	416(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rdx)
        vmovdqu	%ymm1, 416(%rdx)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%r8), %ymm4
        vmovdqu	480(%r8), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%rbx), %ymm10
        vmovdqu	480(%rbx), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	480(%rdx), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rdx)
        vmovdqu	%ymm1, 480(%rdx)
        addq	$0x200, %rdi
        # invntt
        leaq	L_mlkem_avx2_zetas_inv(%rip), %rbx
        vmovdqu	(%rdx), %ymm0
        vmovdqu	32(%rdx), %ymm1
        vmovdqu	64(%rdx), %ymm2
        vmovdqu	96(%rdx), %ymm3
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm5
        vmovdqu	192(%rdx), %ymm6
        vmovdqu	224(%rdx), %ymm7
        # 2: 1/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	32(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	64(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	96(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 1/2
        vmovdqu	128(%rbx), %ymm10
        vmovdqu	160(%rbx), %ymm12
        vmovdqu	192(%rbx), %ymm11
        vmovdqu	224(%rbx), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 1/2
        vmovdqu	256(%rbx), %ymm10
        vmovdqu	288(%rbx), %ymm12
        vmovdqu	320(%rbx), %ymm11
        vmovdqu	352(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 1/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	384(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	416(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	448(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	480(%rbx), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 1/2
        vmovdqu	512(%rbx), %ymm10
        vmovdqu	544(%rbx), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 1/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	576(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	608(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	640(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	672(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 1/2
        vmovdqu	704(%rbx), %ymm10
        vmovdqu	736(%rbx), %ymm12
        vmovdqu	768(%rbx), %ymm11
        vmovdqu	800(%rbx), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 1/2
        vmovdqu	832(%rbx), %ymm10
        vmovdqu	864(%rbx), %ymm12
        vmovdqu	896(%rbx), %ymm11
        vmovdqu	928(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 1/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	960(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	992(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	1024(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	1056(%rbx), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 1/2
        vmovdqu	1088(%rbx), %ymm10
        vmovdqu	1120(%rbx), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 1/2
        vmovdqu	1152(%rbx), %ymm10
        vmovdqu	1184(%rbx), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %ymm7
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	%ymm2, 64(%rdx)
        vmovdqu	%ymm3, 96(%rdx)
        vmovdqu	%ymm4, 128(%rdx)
        vmovdqu	%ymm5, 160(%rdx)
        vmovdqu	%ymm6, 192(%rdx)
        vmovdqu	%ymm7, 224(%rdx)
        vmovdqu	256(%rdx), %ymm0
        vmovdqu	288(%rdx), %ymm1
        vmovdqu	320(%rdx), %ymm2
        vmovdqu	352(%rdx), %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vmovdqu	448(%rdx), %ymm6
        vmovdqu	480(%rdx), %ymm7
        # 2: 2/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1216(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	1248(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	1280(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	1312(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 2/2
        vmovdqu	1344(%rbx), %ymm10
        vmovdqu	1376(%rbx), %ymm12
        vmovdqu	1408(%rbx), %ymm11
        vmovdqu	1440(%rbx), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 2/2
        vmovdqu	1472(%rbx), %ymm10
        vmovdqu	1504(%rbx), %ymm12
        vmovdqu	1536(%rbx), %ymm11
        vmovdqu	1568(%rbx), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 2/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	1600(%rbx), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	1632(%rbx), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	1664(%rbx), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	1696(%rbx), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 2/2
        vmovdqu	1728(%rbx), %ymm10
        vmovdqu	1760(%rbx), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 2/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1792(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	1824(%rbx), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	1856(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	1888(%rbx), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 2/2
        vmovdqu	1920(%rbx), %ymm10
        vmovdqu	1952(%rbx), %ymm12
        vmovdqu	1984(%rbx), %ymm11
        vmovdqu	2016(%rbx), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 2/2
        vmovdqu	2048(%rbx), %ymm10
        vmovdqu	2080(%rbx), %ymm12
        vmovdqu	2112(%rbx), %ymm11
        vmovdqu	2144(%rbx), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 2/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	2176(%rbx), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	2208(%rbx), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	2240(%rbx), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	2272(%rbx), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 2/2
        vmovdqu	2304(%rbx), %ymm10
        vmovdqu	2336(%rbx), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 2/2
        vmovdqu	2368(%rbx), %ymm10
        vmovdqu	2400(%rbx), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %ymm7
        vmovdqu	%ymm0, 256(%rdx)
        vmovdqu	%ymm1, 288(%rdx)
        vmovdqu	%ymm2, 320(%rdx)
        vmovdqu	%ymm3, 352(%rdx)
        # 128
        vmovdqu	2432(%rbx), %ymm10
        vmovdqu	2464(%rbx), %ymm12
        vmovdqu	2496(%rbx), %ymm11
        vmovdqu	2528(%rbx), %ymm13
        vmovdqu	128(%rdx), %ymm0
        vmovdqu	160(%rdx), %ymm1
        vmovdqu	192(%rdx), %ymm2
        vmovdqu	224(%rdx), %ymm3
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	%ymm2, 192(%rdx)
        vmovdqu	%ymm3, 224(%rdx)
        vmovdqu	%ymm4, 384(%rdx)
        vmovdqu	%ymm5, 416(%rdx)
        vmovdqu	%ymm6, 448(%rdx)
        vmovdqu	%ymm7, 480(%rdx)
        vmovdqu	(%rdx), %ymm0
        vmovdqu	32(%rdx), %ymm1
        vmovdqu	64(%rdx), %ymm2
        vmovdqu	96(%rdx), %ymm3
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm5
        vmovdqu	320(%rdx), %ymm6
        vmovdqu	352(%rdx), %ymm7
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	%ymm2, 64(%rdx)
        vmovdqu	%ymm3, 96(%rdx)
        vmovdqu	%ymm4, 256(%rdx)
        vmovdqu	%ymm5, 288(%rdx)
        vmovdqu	%ymm6, 320(%rdx)
        vmovdqu	%ymm7, 352(%rdx)
        # Add Errors
        vmovdqu	(%r10), %ymm0
        vmovdqu	32(%r10), %ymm1
        vmovdqu	64(%r10), %ymm2
        vmovdqu	96(%r10), %ymm3
        vmovdqu	(%rax), %ymm4
        vmovdqu	32(%rax), %ymm5
        vmovdqu	64(%rax), %ymm6
        vmovdqu	96(%rax), %ymm7
        vpaddw	%ymm0, %ymm4, %ymm4
        vpaddw	%ymm1, %ymm5, %ymm5
        vpaddw	%ymm2, %ymm6, %ymm6
        vpaddw	%ymm3, %ymm7, %ymm7
        vmovdqu	(%rdx), %ymm0
        vmovdqu	32(%rdx), %ymm1
        vmovdqu	64(%rdx), %ymm2
        vmovdqu	96(%rdx), %ymm3
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, (%rdx)
        vmovdqu	%ymm1, 32(%rdx)
        vmovdqu	%ymm2, 64(%rdx)
        vmovdqu	%ymm3, 96(%rdx)
        vmovdqu	128(%r10), %ymm0
        vmovdqu	160(%r10), %ymm1
        vmovdqu	192(%r10), %ymm2
        vmovdqu	224(%r10), %ymm3
        vmovdqu	128(%rax), %ymm4
        vmovdqu	160(%rax), %ymm5
        vmovdqu	192(%rax), %ymm6
        vmovdqu	224(%rax), %ymm7
        vpaddw	%ymm0, %ymm4, %ymm4
        vpaddw	%ymm1, %ymm5, %ymm5
        vpaddw	%ymm2, %ymm6, %ymm6
        vpaddw	%ymm3, %ymm7, %ymm7
        vmovdqu	128(%rdx), %ymm0
        vmovdqu	160(%rdx), %ymm1
        vmovdqu	192(%rdx), %ymm2
        vmovdqu	224(%rdx), %ymm3
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 128(%rdx)
        vmovdqu	%ymm1, 160(%rdx)
        vmovdqu	%ymm2, 192(%rdx)
        vmovdqu	%ymm3, 224(%rdx)
        vmovdqu	256(%r10), %ymm0
        vmovdqu	288(%r10), %ymm1
        vmovdqu	320(%r10), %ymm2
        vmovdqu	352(%r10), %ymm3
        vmovdqu	256(%rax), %ymm4
        vmovdqu	288(%rax), %ymm5
        vmovdqu	320(%rax), %ymm6
        vmovdqu	352(%rax), %ymm7
        vpaddw	%ymm0, %ymm4, %ymm4
        vpaddw	%ymm1, %ymm5, %ymm5
        vpaddw	%ymm2, %ymm6, %ymm6
        vpaddw	%ymm3, %ymm7, %ymm7
        vmovdqu	256(%rdx), %ymm0
        vmovdqu	288(%rdx), %ymm1
        vmovdqu	320(%rdx), %ymm2
        vmovdqu	352(%rdx), %ymm3
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 256(%rdx)
        vmovdqu	%ymm1, 288(%rdx)
        vmovdqu	%ymm2, 320(%rdx)
        vmovdqu	%ymm3, 352(%rdx)
        vmovdqu	384(%r10), %ymm0
        vmovdqu	416(%r10), %ymm1
        vmovdqu	448(%r10), %ymm2
        vmovdqu	480(%r10), %ymm3
        vmovdqu	384(%rax), %ymm4
        vmovdqu	416(%rax), %ymm5
        vmovdqu	448(%rax), %ymm6
        vmovdqu	480(%rax), %ymm7
        vpaddw	%ymm0, %ymm4, %ymm4
        vpaddw	%ymm1, %ymm5, %ymm5
        vpaddw	%ymm2, %ymm6, %ymm6
        vpaddw	%ymm3, %ymm7, %ymm7
        vmovdqu	384(%rdx), %ymm0
        vmovdqu	416(%rdx), %ymm1
        vmovdqu	448(%rdx), %ymm2
        vmovdqu	480(%rdx), %ymm3
        vpaddw	%ymm4, %ymm0, %ymm4
        vpaddw	%ymm5, %ymm1, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpaddw	%ymm6, %ymm2, %ymm6
        vpaddw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 384(%rdx)
        vmovdqu	%ymm1, 416(%rdx)
        vmovdqu	%ymm2, 448(%rdx)
        vmovdqu	%ymm3, 480(%rdx)
        vzeroupper
        addq	$48, %rsp
        popq	%rbx
        popq	%r15
        popq	%r14
        popq	%r13
        popq	%r12
        repz retq
#ifndef __APPLE__
.size	mlkem_encapsulate_avx2,.-mlkem_encapsulate_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_decapsulate_avx2
.type	mlkem_decapsulate_avx2,@function
.align	16
mlkem_decapsulate_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_decapsulate_avx2
.p2align	4
_mlkem_decapsulate_avx2:
#endif /* __APPLE__ */
        vmovdqu	mlkem_q(%rip), %ymm14
        vmovdqu	mlkem_v(%rip), %ymm15
        movslq	%r8d, %rax
        movq	%rdx, %r9
L_mlkem_decapsulate_avx2_trans:
        # ntt
        leaq	L_mlkem_avx2_zetas(%rip), %r10
        vmovdqu	(%r10), %ymm10
        vmovdqu	32(%r10), %ymm12
        vmovdqu	128(%r9), %ymm0
        vmovdqu	160(%r9), %ymm1
        vmovdqu	192(%r9), %ymm2
        vmovdqu	224(%r9), %ymm3
        vmovdqu	384(%r9), %ymm4
        vmovdqu	416(%r9), %ymm5
        vmovdqu	448(%r9), %ymm6
        vmovdqu	480(%r9), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%r9)
        vmovdqu	%ymm1, 160(%r9)
        vmovdqu	%ymm2, 192(%r9)
        vmovdqu	%ymm3, 224(%r9)
        vmovdqu	%ymm4, 384(%r9)
        vmovdqu	%ymm5, 416(%r9)
        vmovdqu	%ymm6, 448(%r9)
        vmovdqu	%ymm7, 480(%r9)
        vmovdqu	(%r9), %ymm0
        vmovdqu	32(%r9), %ymm1
        vmovdqu	64(%r9), %ymm2
        vmovdqu	96(%r9), %ymm3
        vmovdqu	256(%r9), %ymm4
        vmovdqu	288(%r9), %ymm5
        vmovdqu	320(%r9), %ymm6
        vmovdqu	352(%r9), %ymm7
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vmovdqu	%ymm4, 256(%r9)
        vmovdqu	%ymm5, 288(%r9)
        vmovdqu	%ymm6, 320(%r9)
        vmovdqu	%ymm7, 352(%r9)
        vmovdqu	128(%r9), %ymm4
        vmovdqu	160(%r9), %ymm5
        vmovdqu	192(%r9), %ymm6
        vmovdqu	224(%r9), %ymm7
        # 64: 0/3
        vmovdqu	64(%r10), %ymm10
        vmovdqu	96(%r10), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 0/3
        vmovdqu	128(%r10), %ymm10
        vmovdqu	160(%r10), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 0/3
        vmovdqu	192(%r10), %ymm10
        vmovdqu	224(%r10), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 0/3
        vmovdqu	256(%r10), %ymm10
        vmovdqu	288(%r10), %ymm12
        vmovdqu	320(%r10), %ymm11
        vmovdqu	352(%r10), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 0/3
        vmovdqu	384(%r10), %ymm10
        vmovdqu	416(%r10), %ymm12
        vmovdqu	448(%r10), %ymm11
        vmovdqu	480(%r10), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 0/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	512(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	544(%r10), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	576(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	608(%r10), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	640(%r10), %ymm10
        vmovdqu	672(%r10), %ymm12
        vmovdqu	704(%r10), %ymm11
        vmovdqu	736(%r10), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 0/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	768(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	800(%r10), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	832(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	864(%r10), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 0/3
        vmovdqu	896(%r10), %ymm10
        vmovdqu	928(%r10), %ymm12
        vmovdqu	960(%r10), %ymm11
        vmovdqu	992(%r10), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 0/3
        vmovdqu	1024(%r10), %ymm10
        vmovdqu	1056(%r10), %ymm12
        vmovdqu	1088(%r10), %ymm11
        vmovdqu	1120(%r10), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 0/3
        vmovdqu	1152(%r10), %ymm10
        vmovdqu	1184(%r10), %ymm12
        vmovdqu	1216(%r10), %ymm11
        vmovdqu	1248(%r10), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, (%r9)
        vmovdqu	%ymm9, 32(%r9)
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 64(%r9)
        vmovdqu	%ymm9, 96(%r9)
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 128(%r9)
        vmovdqu	%ymm9, 160(%r9)
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 192(%r9)
        vmovdqu	%ymm9, 224(%r9)
        vmovdqu	256(%r9), %ymm0
        vmovdqu	288(%r9), %ymm1
        vmovdqu	320(%r9), %ymm2
        vmovdqu	352(%r9), %ymm3
        vmovdqu	384(%r9), %ymm4
        vmovdqu	416(%r9), %ymm5
        vmovdqu	448(%r9), %ymm6
        vmovdqu	480(%r9), %ymm7
        # 64: 1/3
        vmovdqu	1280(%r10), %ymm10
        vmovdqu	1312(%r10), %ymm12
        vpmullw	%ymm12, %ymm4, %ymm8
        vpmullw	%ymm12, %ymm5, %ymm9
        vpmulhw	%ymm10, %ymm4, %ymm4
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm4
        vpsubw	%ymm9, %ymm1, %ymm5
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm6
        vpsubw	%ymm9, %ymm3, %ymm7
        vpaddw	%ymm8, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        # 32: 1/3
        vmovdqu	1344(%r10), %ymm10
        vmovdqu	1376(%r10), %ymm12
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm2
        vpsubw	%ymm9, %ymm1, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        # 32: 1/3
        vmovdqu	1408(%r10), %ymm10
        vmovdqu	1440(%r10), %ymm12
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm6
        vpsubw	%ymm9, %ymm5, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        # 16: 1/3
        vmovdqu	1472(%r10), %ymm10
        vmovdqu	1504(%r10), %ymm12
        vmovdqu	1536(%r10), %ymm11
        vmovdqu	1568(%r10), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 16: 1/3
        vmovdqu	1600(%r10), %ymm10
        vmovdqu	1632(%r10), %ymm12
        vmovdqu	1664(%r10), %ymm11
        vmovdqu	1696(%r10), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 8: 1/3
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1728(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm1
        vmovdqu	1760(%r10), %ymm12
        vperm2i128	$32, %ymm3, %ymm2, %ymm9
        vmovdqu	1792(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm3
        vmovdqu	1824(%r10), %ymm13
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm0
        vpsubw	%ymm2, %ymm3, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm1
        vpsubw	%ymm2, %ymm9, %ymm3
        vpaddw	%ymm0, %ymm8, %ymm8
        vpaddw	%ymm2, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	1856(%r10), %ymm10
        vmovdqu	1888(%r10), %ymm12
        vmovdqu	1920(%r10), %ymm11
        vmovdqu	1952(%r10), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 8: 1/3
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1984(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm5
        vmovdqu	2016(%r10), %ymm12
        vperm2i128	$32, %ymm7, %ymm6, %ymm9
        vmovdqu	2048(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm7
        vmovdqu	2080(%r10), %ymm13
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm4
        vpsubw	%ymm6, %ymm7, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm5
        vpsubw	%ymm6, %ymm9, %ymm7
        vpaddw	%ymm4, %ymm8, %ymm8
        vpaddw	%ymm6, %ymm9, %ymm9
        # 4: 1/3
        vmovdqu	2112(%r10), %ymm10
        vmovdqu	2144(%r10), %ymm12
        vmovdqu	2176(%r10), %ymm11
        vmovdqu	2208(%r10), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm6, %ymm6
        # 2: 1/3
        vmovdqu	2240(%r10), %ymm10
        vmovdqu	2272(%r10), %ymm12
        vmovdqu	2304(%r10), %ymm11
        vmovdqu	2336(%r10), %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
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm1, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm1
        vpsubw	%ymm9, %ymm2, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm2, %ymm2
        # 2: 1/3
        vmovdqu	2368(%r10), %ymm10
        vmovdqu	2400(%r10), %ymm12
        vmovdqu	2432(%r10), %ymm11
        vmovdqu	2464(%r10), %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
        vpmullw	%ymm12, %ymm5, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm5, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm5
        vpsubw	%ymm9, %ymm6, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %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
        vpmulhw	%ymm15, %ymm0, %ymm8
        vpmulhw	%ymm15, %ymm1, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm8
        vpsubw	%ymm9, %ymm1, %ymm9
        vmovdqu	%ymm8, 256(%r9)
        vmovdqu	%ymm9, 288(%r9)
        vpmulhw	%ymm15, %ymm2, %ymm8
        vpmulhw	%ymm15, %ymm3, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm8
        vpsubw	%ymm9, %ymm3, %ymm9
        vmovdqu	%ymm8, 320(%r9)
        vmovdqu	%ymm9, 352(%r9)
        vpmulhw	%ymm15, %ymm4, %ymm8
        vpmulhw	%ymm15, %ymm5, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm8
        vpsubw	%ymm9, %ymm5, %ymm9
        vmovdqu	%ymm8, 384(%r9)
        vmovdqu	%ymm9, 416(%r9)
        vpmulhw	%ymm15, %ymm6, %ymm8
        vpmulhw	%ymm15, %ymm7, %ymm9
        vpsraw	$10, %ymm8, %ymm8
        vpsraw	$10, %ymm9, %ymm9
        vpmullw	%ymm14, %ymm8, %ymm8
        vpmullw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm8
        vpsubw	%ymm9, %ymm7, %ymm9
        vmovdqu	%ymm8, 448(%r9)
        vmovdqu	%ymm9, 480(%r9)
        addq	$0x200, %r9
        subq	$0x01, %rax
        jg	L_mlkem_decapsulate_avx2_trans
        vmovdqu	mlkem_qinv(%rip), %ymm12
        # Pointwise acc mont
        movslq	%r8d, %rax
        # Base mul mont
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r10
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdx), %ymm4
        vmovdqu	32(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r10), %ymm10
        vmovdqu	32(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdx), %ymm4
        vmovdqu	96(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r10), %ymm10
        vmovdqu	96(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r10), %ymm10
        vmovdqu	160(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdx), %ymm4
        vmovdqu	224(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r10), %ymm10
        vmovdqu	224(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r10), %ymm10
        vmovdqu	288(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdx), %ymm4
        vmovdqu	352(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r10), %ymm10
        vmovdqu	352(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r10), %ymm10
        vmovdqu	416(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdx), %ymm4
        vmovdqu	480(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r10), %ymm10
        vmovdqu	480(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rdi
        addq	$0x200, %rdx
        subq	$2, %rax
        jz	L_pointwise_acc_mont_end_decap
L_pointwise_acc_mont_start_decap:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r10
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdx), %ymm4
        vmovdqu	32(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r10), %ymm10
        vmovdqu	32(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rsi), %ymm6
        vmovdqu	32(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdx), %ymm4
        vmovdqu	96(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r10), %ymm10
        vmovdqu	96(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rsi), %ymm6
        vmovdqu	96(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r10), %ymm10
        vmovdqu	160(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rsi), %ymm6
        vmovdqu	160(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdx), %ymm4
        vmovdqu	224(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r10), %ymm10
        vmovdqu	224(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r10), %ymm10
        vmovdqu	288(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rsi), %ymm6
        vmovdqu	288(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdx), %ymm4
        vmovdqu	352(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r10), %ymm10
        vmovdqu	352(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r10), %ymm10
        vmovdqu	416(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rsi), %ymm6
        vmovdqu	416(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdx), %ymm4
        vmovdqu	480(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r10), %ymm10
        vmovdqu	480(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rdi
        addq	$0x200, %rdx
        subq	$0x01, %rax
        jg	L_pointwise_acc_mont_start_decap
L_pointwise_acc_mont_end_decap:
        # Base mul mont add
        leaq	L_mlkem_avx2_zetas_basemul(%rip), %r10
        vmovdqu	(%rdi), %ymm2
        vmovdqu	32(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	(%rdx), %ymm4
        vmovdqu	32(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	(%r10), %ymm10
        vmovdqu	32(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	(%rsi), %ymm6
        vmovdqu	32(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	64(%rdi), %ymm2
        vmovdqu	96(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	64(%rdx), %ymm4
        vmovdqu	96(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	64(%r10), %ymm10
        vmovdqu	96(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	64(%rsi), %ymm6
        vmovdqu	96(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 64(%rsi)
        vmovdqu	%ymm1, 96(%rsi)
        vmovdqu	128(%rdi), %ymm2
        vmovdqu	160(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	128(%rdx), %ymm4
        vmovdqu	160(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	128(%r10), %ymm10
        vmovdqu	160(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	128(%rsi), %ymm6
        vmovdqu	160(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	192(%rdi), %ymm2
        vmovdqu	224(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	192(%rdx), %ymm4
        vmovdqu	224(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	192(%r10), %ymm10
        vmovdqu	224(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 192(%rsi)
        vmovdqu	%ymm1, 224(%rsi)
        vmovdqu	256(%rdi), %ymm2
        vmovdqu	288(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	256(%rdx), %ymm4
        vmovdqu	288(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	256(%r10), %ymm10
        vmovdqu	288(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	256(%rsi), %ymm6
        vmovdqu	288(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	320(%rdi), %ymm2
        vmovdqu	352(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	320(%rdx), %ymm4
        vmovdqu	352(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	320(%r10), %ymm10
        vmovdqu	352(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 320(%rsi)
        vmovdqu	%ymm1, 352(%rsi)
        vmovdqu	384(%rdi), %ymm2
        vmovdqu	416(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	384(%rdx), %ymm4
        vmovdqu	416(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	384(%r10), %ymm10
        vmovdqu	416(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	384(%rsi), %ymm6
        vmovdqu	416(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	448(%rdi), %ymm2
        vmovdqu	480(%rdi), %ymm3
        vpslld	$16, %ymm3, %ymm6
        vpsrld	$16, %ymm2, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm2, %ymm2
        vpblendw	$0x55, %ymm7, %ymm3, %ymm3
        vmovdqu	448(%rdx), %ymm4
        vmovdqu	480(%rdx), %ymm5
        vpslld	$16, %ymm5, %ymm6
        vpsrld	$16, %ymm4, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm4, %ymm4
        vpblendw	$0x55, %ymm7, %ymm5, %ymm5
        vmovdqu	448(%r10), %ymm10
        vmovdqu	480(%r10), %ymm11
        vpmullw	%ymm5, %ymm3, %ymm0
        vpmulhw	%ymm5, %ymm3, %ymm6
        vpmullw	%ymm4, %ymm2, %ymm1
        vpmulhw	%ymm4, %ymm2, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm0, %ymm8
        vpmullw	%ymm12, %ymm1, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm0
        vpsubw	%ymm9, %ymm7, %ymm1
        vpmullw	%ymm11, %ymm0, %ymm6
        vpmulhw	%ymm10, %ymm0, %ymm7
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm6, %ymm7, %ymm0
        vpaddw	%ymm1, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm2, %ymm1
        vpmulhw	%ymm5, %ymm2, %ymm6
        vpmullw	%ymm4, %ymm3, %ymm2
        vpmulhw	%ymm4, %ymm3, %ymm7
        # Mont Reduce
        vpmullw	%ymm12, %ymm1, %ymm8
        vpmullw	%ymm12, %ymm2, %ymm9
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm1
        vpsubw	%ymm9, %ymm7, %ymm2
        vpaddw	%ymm2, %ymm1, %ymm1
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        vpaddw	%ymm6, %ymm0, %ymm0
        vpaddw	%ymm7, %ymm1, %ymm1
        vpslld	$16, %ymm1, %ymm6
        vpsrld	$16, %ymm0, %ymm7
        vpblendw	$0xaa, %ymm6, %ymm0, %ymm0
        vpblendw	$0x55, %ymm7, %ymm1, %ymm1
        vmovdqu	%ymm0, 448(%rsi)
        vmovdqu	%ymm1, 480(%rsi)
        addq	$0x200, %rdi
        # invntt
        leaq	L_mlkem_avx2_zetas_inv(%rip), %r10
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	128(%rsi), %ymm4
        vmovdqu	160(%rsi), %ymm5
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        # 2: 1/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	32(%r10), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	64(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	96(%r10), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 1/2
        vmovdqu	128(%r10), %ymm10
        vmovdqu	160(%r10), %ymm12
        vmovdqu	192(%r10), %ymm11
        vmovdqu	224(%r10), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 1/2
        vmovdqu	256(%r10), %ymm10
        vmovdqu	288(%r10), %ymm12
        vmovdqu	320(%r10), %ymm11
        vmovdqu	352(%r10), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 1/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	384(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	416(%r10), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	448(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	480(%r10), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 1/2
        vmovdqu	512(%r10), %ymm10
        vmovdqu	544(%r10), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 1/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	576(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	608(%r10), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	640(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	672(%r10), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 1/2
        vmovdqu	704(%r10), %ymm10
        vmovdqu	736(%r10), %ymm12
        vmovdqu	768(%r10), %ymm11
        vmovdqu	800(%r10), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 1/2
        vmovdqu	832(%r10), %ymm10
        vmovdqu	864(%r10), %ymm12
        vmovdqu	896(%r10), %ymm11
        vmovdqu	928(%r10), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 1/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	960(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	992(%r10), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	1024(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	1056(%r10), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 1/2
        vmovdqu	1088(%r10), %ymm10
        vmovdqu	1120(%r10), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 1/2
        vmovdqu	1152(%r10), %ymm10
        vmovdqu	1184(%r10), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %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)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vmovdqu	320(%rsi), %ymm2
        vmovdqu	352(%rsi), %ymm3
        vmovdqu	384(%rsi), %ymm4
        vmovdqu	416(%rsi), %ymm5
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        # 2: 2/2
        vperm2i128	$32, %ymm1, %ymm0, %ymm8
        vmovdqu	1216(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm0, %ymm9
        vmovdqu	1248(%r10), %ymm12
        vpsllq	$32, %ymm9, %ymm0
        vpsrlq	$32, %ymm8, %ymm1
        vpblendd	$0xaa, %ymm0, %ymm8, %ymm0
        vpblendd	$0x55, %ymm1, %ymm9, %ymm1
        vperm2i128	$32, %ymm3, %ymm2, %ymm8
        vmovdqu	1280(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm2, %ymm9
        vmovdqu	1312(%r10), %ymm13
        vpsllq	$32, %ymm9, %ymm2
        vpsrlq	$32, %ymm8, %ymm3
        vpblendd	$0xaa, %ymm2, %ymm8, %ymm2
        vpblendd	$0x55, %ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 4: 2/2
        vmovdqu	1344(%r10), %ymm10
        vmovdqu	1376(%r10), %ymm12
        vmovdqu	1408(%r10), %ymm11
        vmovdqu	1440(%r10), %ymm13
        vpunpckldq	%ymm1, %ymm8, %ymm0
        vpunpckhdq	%ymm1, %ymm8, %ymm1
        vpunpckldq	%ymm3, %ymm9, %ymm2
        vpunpckhdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 8: 2/2
        vmovdqu	1472(%r10), %ymm10
        vmovdqu	1504(%r10), %ymm12
        vmovdqu	1536(%r10), %ymm11
        vmovdqu	1568(%r10), %ymm13
        vpunpcklqdq	%ymm1, %ymm8, %ymm0
        vpunpckhqdq	%ymm1, %ymm8, %ymm1
        vpunpcklqdq	%ymm3, %ymm9, %ymm2
        vpunpckhqdq	%ymm3, %ymm9, %ymm3
        vpaddw	%ymm1, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm2, %ymm9
        vpsubw	%ymm1, %ymm0, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm2
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm8, %ymm8
        vpsubw	%ymm2, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm1, %ymm0
        vpmullw	%ymm13, %ymm3, %ymm2
        vpmulhw	%ymm10, %ymm1, %ymm1
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm0, %ymm0
        vpmulhw	%ymm14, %ymm2, %ymm2
        vpsubw	%ymm0, %ymm1, %ymm1
        vpsubw	%ymm2, %ymm3, %ymm3
        # 16: 2/2
        vperm2i128	$32, %ymm1, %ymm8, %ymm0
        vmovdqu	1600(%r10), %ymm10
        vperm2i128	$49, %ymm1, %ymm8, %ymm1
        vmovdqu	1632(%r10), %ymm12
        vperm2i128	$32, %ymm3, %ymm9, %ymm2
        vmovdqu	1664(%r10), %ymm11
        vperm2i128	$49, %ymm3, %ymm9, %ymm3
        vmovdqu	1696(%r10), %ymm13
        vpsubw	%ymm1, %ymm0, %ymm8
        vpsubw	%ymm3, %ymm2, %ymm9
        vpaddw	%ymm1, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm2, %ymm2
        vpmullw	%ymm12, %ymm8, %ymm1
        vpmullw	%ymm13, %ymm9, %ymm3
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm1, %ymm8, %ymm1
        vpsubw	%ymm3, %ymm9, %ymm3
        # 32: 2/2
        vmovdqu	1728(%r10), %ymm10
        vmovdqu	1760(%r10), %ymm12
        vpaddw	%ymm2, %ymm0, %ymm8
        vpaddw	%ymm3, %ymm1, %ymm9
        vpsubw	%ymm2, %ymm0, %ymm2
        vpsubw	%ymm3, %ymm1, %ymm3
        vpmulhw	%ymm15, %ymm8, %ymm0
        vpmulhw	%ymm15, %ymm9, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm8, %ymm0
        vpsubw	%ymm1, %ymm9, %ymm1
        vpmullw	%ymm12, %ymm2, %ymm8
        vpmullw	%ymm12, %ymm3, %ymm9
        vpmulhw	%ymm10, %ymm2, %ymm2
        vpmulhw	%ymm10, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        # 2: 2/2
        vperm2i128	$32, %ymm5, %ymm4, %ymm8
        vmovdqu	1792(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm4, %ymm9
        vmovdqu	1824(%r10), %ymm12
        vpsllq	$32, %ymm9, %ymm4
        vpsrlq	$32, %ymm8, %ymm5
        vpblendd	$0xaa, %ymm4, %ymm8, %ymm4
        vpblendd	$0x55, %ymm5, %ymm9, %ymm5
        vperm2i128	$32, %ymm7, %ymm6, %ymm8
        vmovdqu	1856(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm6, %ymm9
        vmovdqu	1888(%r10), %ymm13
        vpsllq	$32, %ymm9, %ymm6
        vpsrlq	$32, %ymm8, %ymm7
        vpblendd	$0xaa, %ymm6, %ymm8, %ymm6
        vpblendd	$0x55, %ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 4: 2/2
        vmovdqu	1920(%r10), %ymm10
        vmovdqu	1952(%r10), %ymm12
        vmovdqu	1984(%r10), %ymm11
        vmovdqu	2016(%r10), %ymm13
        vpunpckldq	%ymm5, %ymm8, %ymm4
        vpunpckhdq	%ymm5, %ymm8, %ymm5
        vpunpckldq	%ymm7, %ymm9, %ymm6
        vpunpckhdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 8: 2/2
        vmovdqu	2048(%r10), %ymm10
        vmovdqu	2080(%r10), %ymm12
        vmovdqu	2112(%r10), %ymm11
        vmovdqu	2144(%r10), %ymm13
        vpunpcklqdq	%ymm5, %ymm8, %ymm4
        vpunpckhqdq	%ymm5, %ymm8, %ymm5
        vpunpcklqdq	%ymm7, %ymm9, %ymm6
        vpunpckhqdq	%ymm7, %ymm9, %ymm7
        vpaddw	%ymm5, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm6, %ymm9
        vpsubw	%ymm5, %ymm4, %ymm5
        vpsubw	%ymm7, %ymm6, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm6
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm6, %ymm6
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm8, %ymm8
        vpsubw	%ymm6, %ymm9, %ymm9
        vpmullw	%ymm12, %ymm5, %ymm4
        vpmullw	%ymm13, %ymm7, %ymm6
        vpmulhw	%ymm10, %ymm5, %ymm5
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpsubw	%ymm4, %ymm5, %ymm5
        vpsubw	%ymm6, %ymm7, %ymm7
        # 16: 2/2
        vperm2i128	$32, %ymm5, %ymm8, %ymm4
        vmovdqu	2176(%r10), %ymm10
        vperm2i128	$49, %ymm5, %ymm8, %ymm5
        vmovdqu	2208(%r10), %ymm12
        vperm2i128	$32, %ymm7, %ymm9, %ymm6
        vmovdqu	2240(%r10), %ymm11
        vperm2i128	$49, %ymm7, %ymm9, %ymm7
        vmovdqu	2272(%r10), %ymm13
        vpsubw	%ymm5, %ymm4, %ymm8
        vpsubw	%ymm7, %ymm6, %ymm9
        vpaddw	%ymm5, %ymm4, %ymm4
        vpaddw	%ymm7, %ymm6, %ymm6
        vpmullw	%ymm12, %ymm8, %ymm5
        vpmullw	%ymm13, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm11, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm5, %ymm8, %ymm5
        vpsubw	%ymm7, %ymm9, %ymm7
        # 32: 2/2
        vmovdqu	2304(%r10), %ymm10
        vmovdqu	2336(%r10), %ymm12
        vpaddw	%ymm6, %ymm4, %ymm8
        vpaddw	%ymm7, %ymm5, %ymm9
        vpsubw	%ymm6, %ymm4, %ymm6
        vpsubw	%ymm7, %ymm5, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm4
        vpmulhw	%ymm15, %ymm9, %ymm5
        vpsraw	$10, %ymm4, %ymm4
        vpsraw	$10, %ymm5, %ymm5
        vpmullw	%ymm14, %ymm4, %ymm4
        vpmullw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        # 64: 2/2
        vmovdqu	2368(%r10), %ymm10
        vmovdqu	2400(%r10), %ymm12
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpsubw	%ymm6, %ymm2, %ymm8
        vpsubw	%ymm7, %ymm3, %ymm9
        vpaddw	%ymm6, %ymm2, %ymm2
        vpaddw	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm12, %ymm8, %ymm6
        vpmullw	%ymm12, %ymm9, %ymm7
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm6, %ymm6
        vpmulhw	%ymm14, %ymm7, %ymm7
        vpsubw	%ymm6, %ymm8, %ymm6
        vpsubw	%ymm7, %ymm9, %ymm7
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	%ymm2, 320(%rsi)
        vmovdqu	%ymm3, 352(%rsi)
        # 128
        vmovdqu	2432(%r10), %ymm10
        vmovdqu	2464(%r10), %ymm12
        vmovdqu	2496(%r10), %ymm11
        vmovdqu	2528(%r10), %ymm13
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm1
        vmovdqu	192(%rsi), %ymm2
        vmovdqu	224(%rsi), %ymm3
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	%ymm2, 192(%rsi)
        vmovdqu	%ymm3, 224(%rsi)
        vmovdqu	%ymm4, 384(%rsi)
        vmovdqu	%ymm5, 416(%rsi)
        vmovdqu	%ymm6, 448(%rsi)
        vmovdqu	%ymm7, 480(%rsi)
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	256(%rsi), %ymm4
        vmovdqu	288(%rsi), %ymm5
        vmovdqu	320(%rsi), %ymm6
        vmovdqu	352(%rsi), %ymm7
        vpsubw	%ymm4, %ymm0, %ymm8
        vpsubw	%ymm5, %ymm1, %ymm9
        vpaddw	%ymm4, %ymm0, %ymm0
        vpaddw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm12, %ymm8, %ymm4
        vpmullw	%ymm12, %ymm9, %ymm5
        vpmulhw	%ymm10, %ymm8, %ymm8
        vpmulhw	%ymm10, %ymm9, %ymm9
        vpmulhw	%ymm14, %ymm4, %ymm4
        vpmulhw	%ymm14, %ymm5, %ymm5
        vpsubw	%ymm4, %ymm8, %ymm4
        vpsubw	%ymm5, %ymm9, %ymm5
        vpaddw	%ymm6, %ymm2, %ymm8
        vpaddw	%ymm7, %ymm3, %ymm9
        vpsubw	%ymm6, %ymm2, %ymm6
        vpsubw	%ymm7, %ymm3, %ymm7
        vpmulhw	%ymm15, %ymm8, %ymm2
        vpmulhw	%ymm15, %ymm9, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm8, %ymm2
        vpsubw	%ymm3, %ymm9, %ymm3
        vpmullw	%ymm12, %ymm6, %ymm8
        vpmullw	%ymm12, %ymm7, %ymm9
        vpmulhw	%ymm10, %ymm6, %ymm6
        vpmulhw	%ymm10, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vpmullw	%ymm13, %ymm0, %ymm8
        vpmullw	%ymm13, %ymm1, %ymm9
        vpmulhw	%ymm11, %ymm0, %ymm0
        vpmulhw	%ymm11, %ymm1, %ymm1
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm0, %ymm0
        vpsubw	%ymm9, %ymm1, %ymm1
        vpmullw	%ymm13, %ymm2, %ymm8
        vpmullw	%ymm13, %ymm3, %ymm9
        vpmulhw	%ymm11, %ymm2, %ymm2
        vpmulhw	%ymm11, %ymm3, %ymm3
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm2, %ymm2
        vpsubw	%ymm9, %ymm3, %ymm3
        vpmullw	%ymm13, %ymm4, %ymm8
        vpmullw	%ymm13, %ymm5, %ymm9
        vpmulhw	%ymm11, %ymm4, %ymm4
        vpmulhw	%ymm11, %ymm5, %ymm5
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm4, %ymm4
        vpsubw	%ymm9, %ymm5, %ymm5
        vpmullw	%ymm13, %ymm6, %ymm8
        vpmullw	%ymm13, %ymm7, %ymm9
        vpmulhw	%ymm11, %ymm6, %ymm6
        vpmulhw	%ymm11, %ymm7, %ymm7
        vpmulhw	%ymm14, %ymm8, %ymm8
        vpmulhw	%ymm14, %ymm9, %ymm9
        vpsubw	%ymm8, %ymm6, %ymm6
        vpsubw	%ymm9, %ymm7, %ymm7
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	%ymm2, 64(%rsi)
        vmovdqu	%ymm3, 96(%rsi)
        vmovdqu	%ymm4, 256(%rsi)
        vmovdqu	%ymm5, 288(%rsi)
        vmovdqu	%ymm6, 320(%rsi)
        vmovdqu	%ymm7, 352(%rsi)
        # Sub Errors
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	(%rcx), %ymm4
        vmovdqu	32(%rcx), %ymm5
        vmovdqu	64(%rcx), %ymm6
        vmovdqu	96(%rcx), %ymm7
        vpsubw	%ymm0, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpsubw	%ymm2, %ymm6, %ymm6
        vpsubw	%ymm3, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, (%rsi)
        vmovdqu	%ymm1, 32(%rsi)
        vmovdqu	%ymm2, 64(%rsi)
        vmovdqu	%ymm3, 96(%rsi)
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm1
        vmovdqu	192(%rsi), %ymm2
        vmovdqu	224(%rsi), %ymm3
        vmovdqu	128(%rcx), %ymm4
        vmovdqu	160(%rcx), %ymm5
        vmovdqu	192(%rcx), %ymm6
        vmovdqu	224(%rcx), %ymm7
        vpsubw	%ymm0, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpsubw	%ymm2, %ymm6, %ymm6
        vpsubw	%ymm3, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 128(%rsi)
        vmovdqu	%ymm1, 160(%rsi)
        vmovdqu	%ymm2, 192(%rsi)
        vmovdqu	%ymm3, 224(%rsi)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vmovdqu	320(%rsi), %ymm2
        vmovdqu	352(%rsi), %ymm3
        vmovdqu	256(%rcx), %ymm4
        vmovdqu	288(%rcx), %ymm5
        vmovdqu	320(%rcx), %ymm6
        vmovdqu	352(%rcx), %ymm7
        vpsubw	%ymm0, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpsubw	%ymm2, %ymm6, %ymm6
        vpsubw	%ymm3, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 256(%rsi)
        vmovdqu	%ymm1, 288(%rsi)
        vmovdqu	%ymm2, 320(%rsi)
        vmovdqu	%ymm3, 352(%rsi)
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	416(%rsi), %ymm1
        vmovdqu	448(%rsi), %ymm2
        vmovdqu	480(%rsi), %ymm3
        vmovdqu	384(%rcx), %ymm4
        vmovdqu	416(%rcx), %ymm5
        vmovdqu	448(%rcx), %ymm6
        vmovdqu	480(%rcx), %ymm7
        vpsubw	%ymm0, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm5, %ymm5
        vpmulhw	%ymm15, %ymm4, %ymm0
        vpmulhw	%ymm15, %ymm5, %ymm1
        vpsraw	$10, %ymm0, %ymm0
        vpsraw	$10, %ymm1, %ymm1
        vpmullw	%ymm14, %ymm0, %ymm0
        vpmullw	%ymm14, %ymm1, %ymm1
        vpsubw	%ymm0, %ymm4, %ymm0
        vpsubw	%ymm1, %ymm5, %ymm1
        vpsubw	%ymm2, %ymm6, %ymm6
        vpsubw	%ymm3, %ymm7, %ymm7
        vpmulhw	%ymm15, %ymm6, %ymm2
        vpmulhw	%ymm15, %ymm7, %ymm3
        vpsraw	$10, %ymm2, %ymm2
        vpsraw	$10, %ymm3, %ymm3
        vpmullw	%ymm14, %ymm2, %ymm2
        vpmullw	%ymm14, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm6, %ymm2
        vpsubw	%ymm3, %ymm7, %ymm3
        vmovdqu	%ymm0, 384(%rsi)
        vmovdqu	%ymm1, 416(%rsi)
        vmovdqu	%ymm2, 448(%rsi)
        vmovdqu	%ymm3, 480(%rsi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_decapsulate_avx2,.-mlkem_decapsulate_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_csubq_avx2
.type	mlkem_csubq_avx2,@function
.align	16
mlkem_csubq_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_csubq_avx2
.p2align	4
_mlkem_csubq_avx2:
#endif /* __APPLE__ */
        vmovdqu	mlkem_q(%rip), %ymm12
        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
        vpsubw	%ymm12, %ymm0, %ymm8
        vpsubw	%ymm12, %ymm1, %ymm9
        vpsubw	%ymm12, %ymm2, %ymm10
        vpsubw	%ymm12, %ymm3, %ymm11
        vpsraw	$15, %ymm8, %ymm0
        vpsraw	$15, %ymm9, %ymm1
        vpsraw	$15, %ymm10, %ymm2
        vpsraw	$15, %ymm11, %ymm3
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpand	%ymm12, %ymm2, %ymm2
        vpand	%ymm12, %ymm3, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm10, %ymm2, %ymm2
        vpaddw	%ymm11, %ymm3, %ymm3
        vpsubw	%ymm12, %ymm4, %ymm8
        vpsubw	%ymm12, %ymm5, %ymm9
        vpsubw	%ymm12, %ymm6, %ymm10
        vpsubw	%ymm12, %ymm7, %ymm11
        vpsraw	$15, %ymm8, %ymm4
        vpsraw	$15, %ymm9, %ymm5
        vpsraw	$15, %ymm10, %ymm6
        vpsraw	$15, %ymm11, %ymm7
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vpand	%ymm12, %ymm6, %ymm6
        vpand	%ymm12, %ymm7, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpaddw	%ymm10, %ymm6, %ymm6
        vpaddw	%ymm11, %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
        vpsubw	%ymm12, %ymm0, %ymm8
        vpsubw	%ymm12, %ymm1, %ymm9
        vpsubw	%ymm12, %ymm2, %ymm10
        vpsubw	%ymm12, %ymm3, %ymm11
        vpsraw	$15, %ymm8, %ymm0
        vpsraw	$15, %ymm9, %ymm1
        vpsraw	$15, %ymm10, %ymm2
        vpsraw	$15, %ymm11, %ymm3
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpand	%ymm12, %ymm2, %ymm2
        vpand	%ymm12, %ymm3, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm10, %ymm2, %ymm2
        vpaddw	%ymm11, %ymm3, %ymm3
        vpsubw	%ymm12, %ymm4, %ymm8
        vpsubw	%ymm12, %ymm5, %ymm9
        vpsubw	%ymm12, %ymm6, %ymm10
        vpsubw	%ymm12, %ymm7, %ymm11
        vpsraw	$15, %ymm8, %ymm4
        vpsraw	$15, %ymm9, %ymm5
        vpsraw	$15, %ymm10, %ymm6
        vpsraw	$15, %ymm11, %ymm7
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vpand	%ymm12, %ymm6, %ymm6
        vpand	%ymm12, %ymm7, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpaddw	%ymm10, %ymm6, %ymm6
        vpaddw	%ymm11, %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)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_csubq_avx2,.-mlkem_csubq_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_rej_idx:
.quad	0xffffffffffffffff,0xffffffffffffff00
.quad	0xffffffffffffff02,0xffffffffffff0200
.quad	0xffffffffffffff04,0xffffffffffff0400
.quad	0xffffffffffff0402,0xffffffffff040200
.quad	0xffffffffffffff06,0xffffffffffff0600
.quad	0xffffffffffff0602,0xffffffffff060200
.quad	0xffffffffffff0604,0xffffffffff060400
.quad	0xffffffffff060402,0xffffffff06040200
.quad	0xffffffffffffff08,0xffffffffffff0800
.quad	0xffffffffffff0802,0xffffffffff080200
.quad	0xffffffffffff0804,0xffffffffff080400
.quad	0xffffffffff080402,0xffffffff08040200
.quad	0xffffffffffff0806,0xffffffffff080600
.quad	0xffffffffff080602,0xffffffff08060200
.quad	0xffffffffff080604,0xffffffff08060400
.quad	0xffffffff08060402,0xffffff0806040200
.quad	0xffffffffffffff0a,0xffffffffffff0a00
.quad	0xffffffffffff0a02,0xffffffffff0a0200
.quad	0xffffffffffff0a04,0xffffffffff0a0400
.quad	0xffffffffff0a0402,0xffffffff0a040200
.quad	0xffffffffffff0a06,0xffffffffff0a0600
.quad	0xffffffffff0a0602,0xffffffff0a060200
.quad	0xffffffffff0a0604,0xffffffff0a060400
.quad	0xffffffff0a060402,0xffffff0a06040200
.quad	0xffffffffffff0a08,0xffffffffff0a0800
.quad	0xffffffffff0a0802,0xffffffff0a080200
.quad	0xffffffffff0a0804,0xffffffff0a080400
.quad	0xffffffff0a080402,0xffffff0a08040200
.quad	0xffffffffff0a0806,0xffffffff0a080600
.quad	0xffffffff0a080602,0xffffff0a08060200
.quad	0xffffffff0a080604,0xffffff0a08060400
.quad	0xffffff0a08060402,0xffff0a0806040200
.quad	0xffffffffffffff0c,0xffffffffffff0c00
.quad	0xffffffffffff0c02,0xffffffffff0c0200
.quad	0xffffffffffff0c04,0xffffffffff0c0400
.quad	0xffffffffff0c0402,0xffffffff0c040200
.quad	0xffffffffffff0c06,0xffffffffff0c0600
.quad	0xffffffffff0c0602,0xffffffff0c060200
.quad	0xffffffffff0c0604,0xffffffff0c060400
.quad	0xffffffff0c060402,0xffffff0c06040200
.quad	0xffffffffffff0c08,0xffffffffff0c0800
.quad	0xffffffffff0c0802,0xffffffff0c080200
.quad	0xffffffffff0c0804,0xffffffff0c080400
.quad	0xffffffff0c080402,0xffffff0c08040200
.quad	0xffffffffff0c0806,0xffffffff0c080600
.quad	0xffffffff0c080602,0xffffff0c08060200
.quad	0xffffffff0c080604,0xffffff0c08060400
.quad	0xffffff0c08060402,0xffff0c0806040200
.quad	0xffffffffffff0c0a,0xffffffffff0c0a00
.quad	0xffffffffff0c0a02,0xffffffff0c0a0200
.quad	0xffffffffff0c0a04,0xffffffff0c0a0400
.quad	0xffffffff0c0a0402,0xffffff0c0a040200
.quad	0xffffffffff0c0a06,0xffffffff0c0a0600
.quad	0xffffffff0c0a0602,0xffffff0c0a060200
.quad	0xffffffff0c0a0604,0xffffff0c0a060400
.quad	0xffffff0c0a060402,0xffff0c0a06040200
.quad	0xffffffffff0c0a08,0xffffffff0c0a0800
.quad	0xffffffff0c0a0802,0xffffff0c0a080200
.quad	0xffffffff0c0a0804,0xffffff0c0a080400
.quad	0xffffff0c0a080402,0xffff0c0a08040200
.quad	0xffffffff0c0a0806,0xffffff0c0a080600
.quad	0xffffff0c0a080602,0xffff0c0a08060200
.quad	0xffffff0c0a080604,0xffff0c0a08060400
.quad	0xffff0c0a08060402,0xff0c0a0806040200
.quad	0xffffffffffffff0e,0xffffffffffff0e00
.quad	0xffffffffffff0e02,0xffffffffff0e0200
.quad	0xffffffffffff0e04,0xffffffffff0e0400
.quad	0xffffffffff0e0402,0xffffffff0e040200
.quad	0xffffffffffff0e06,0xffffffffff0e0600
.quad	0xffffffffff0e0602,0xffffffff0e060200
.quad	0xffffffffff0e0604,0xffffffff0e060400
.quad	0xffffffff0e060402,0xffffff0e06040200
.quad	0xffffffffffff0e08,0xffffffffff0e0800
.quad	0xffffffffff0e0802,0xffffffff0e080200
.quad	0xffffffffff0e0804,0xffffffff0e080400
.quad	0xffffffff0e080402,0xffffff0e08040200
.quad	0xffffffffff0e0806,0xffffffff0e080600
.quad	0xffffffff0e080602,0xffffff0e08060200
.quad	0xffffffff0e080604,0xffffff0e08060400
.quad	0xffffff0e08060402,0xffff0e0806040200
.quad	0xffffffffffff0e0a,0xffffffffff0e0a00
.quad	0xffffffffff0e0a02,0xffffffff0e0a0200
.quad	0xffffffffff0e0a04,0xffffffff0e0a0400
.quad	0xffffffff0e0a0402,0xffffff0e0a040200
.quad	0xffffffffff0e0a06,0xffffffff0e0a0600
.quad	0xffffffff0e0a0602,0xffffff0e0a060200
.quad	0xffffffff0e0a0604,0xffffff0e0a060400
.quad	0xffffff0e0a060402,0xffff0e0a06040200
.quad	0xffffffffff0e0a08,0xffffffff0e0a0800
.quad	0xffffffff0e0a0802,0xffffff0e0a080200
.quad	0xffffffff0e0a0804,0xffffff0e0a080400
.quad	0xffffff0e0a080402,0xffff0e0a08040200
.quad	0xffffffff0e0a0806,0xffffff0e0a080600
.quad	0xffffff0e0a080602,0xffff0e0a08060200
.quad	0xffffff0e0a080604,0xffff0e0a08060400
.quad	0xffff0e0a08060402,0xff0e0a0806040200
.quad	0xffffffffffff0e0c,0xffffffffff0e0c00
.quad	0xffffffffff0e0c02,0xffffffff0e0c0200
.quad	0xffffffffff0e0c04,0xffffffff0e0c0400
.quad	0xffffffff0e0c0402,0xffffff0e0c040200
.quad	0xffffffffff0e0c06,0xffffffff0e0c0600
.quad	0xffffffff0e0c0602,0xffffff0e0c060200
.quad	0xffffffff0e0c0604,0xffffff0e0c060400
.quad	0xffffff0e0c060402,0xffff0e0c06040200
.quad	0xffffffffff0e0c08,0xffffffff0e0c0800
.quad	0xffffffff0e0c0802,0xffffff0e0c080200
.quad	0xffffffff0e0c0804,0xffffff0e0c080400
.quad	0xffffff0e0c080402,0xffff0e0c08040200
.quad	0xffffffff0e0c0806,0xffffff0e0c080600
.quad	0xffffff0e0c080602,0xffff0e0c08060200
.quad	0xffffff0e0c080604,0xffff0e0c08060400
.quad	0xffff0e0c08060402,0xff0e0c0806040200
.quad	0xffffffffff0e0c0a,0xffffffff0e0c0a00
.quad	0xffffffff0e0c0a02,0xffffff0e0c0a0200
.quad	0xffffffff0e0c0a04,0xffffff0e0c0a0400
.quad	0xffffff0e0c0a0402,0xffff0e0c0a040200
.quad	0xffffffff0e0c0a06,0xffffff0e0c0a0600
.quad	0xffffff0e0c0a0602,0xffff0e0c0a060200
.quad	0xffffff0e0c0a0604,0xffff0e0c0a060400
.quad	0xffff0e0c0a060402,0xff0e0c0a06040200
.quad	0xffffffff0e0c0a08,0xffffff0e0c0a0800
.quad	0xffffff0e0c0a0802,0xffff0e0c0a080200
.quad	0xffffff0e0c0a0804,0xffff0e0c0a080400
.quad	0xffff0e0c0a080402,0xff0e0c0a08040200
.quad	0xffffff0e0c0a0806,0xffff0e0c0a080600
.quad	0xffff0e0c0a080602,0xff0e0c0a08060200
.quad	0xffff0e0c0a080604,0xff0e0c0a08060400
.quad	0xff0e0c0a08060402,0x0e0c0a0806040200
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_rej_q:
.quad	0x0d010d010d010d01,0x0d010d010d010d01
.quad	0x0d010d010d010d01,0x0d010d010d010d01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_rej_ones:
.quad	0x0101010101010101,0x0101010101010101
.quad	0x0101010101010101,0x0101010101010101
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_rej_mask:
.quad	0x0fff0fff0fff0fff,0x0fff0fff0fff0fff
.quad	0x0fff0fff0fff0fff,0x0fff0fff0fff0fff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_rej_shuffle:
.quad	0x0504040302010100,0x0b0a0a0908070706
.quad	0x0908080706050504,0x0f0e0e0d0c0b0b0a
#ifndef __APPLE__
.text
.globl	mlkem_rej_uniform_n_avx2
.type	mlkem_rej_uniform_n_avx2,@function
.align	16
mlkem_rej_uniform_n_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_rej_uniform_n_avx2
.p2align	4
_mlkem_rej_uniform_n_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        pushq	%r14
        pushq	%r15
        pushq	%rbp
        movq	%rcx, %r8
        movl	%esi, %eax
        vmovdqu	L_mlkem_rej_q(%rip), %ymm6
        vmovdqu	L_mlkem_rej_ones(%rip), %ymm7
        vmovdqu	L_mlkem_rej_mask(%rip), %ymm8
        vmovdqu	L_mlkem_rej_shuffle(%rip), %ymm9
        leaq	L_mlkem_rej_idx(%rip), %r9
        movq	$0x1111111111111111, %r14
        movq	$0xe0c0a0806040200, %rbp
        movq	$0x101010101010101, %r13
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 48(%rdx), %ymm0
        vpermq	$0x94, 72(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 96(%rdx), %ymm0
        vpermq	$0x94, 120(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 144(%rdx), %ymm0
        vpermq	$0x94, 168(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 192(%rdx), %ymm0
        vpermq	$0x94, 216(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 240(%rdx), %ymm0
        vpermq	$0x94, 264(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        vpermq	$0x94, 288(%rdx), %ymm0
        vpermq	$0x94, 312(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        addq	$0x150, %rdx
        subl	$0x150, %r8d
L_mlkem_rej_uniform_n_avx2_start_256:
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        addq	$48, %rdx
        subl	$48, %r8d
        cmpl	$48, %r8d
        jl	L_mlkem_rej_uniform_n_avx2_done_256
        cmpl	$32, %esi
        jge	L_mlkem_rej_uniform_n_avx2_start_256
L_mlkem_rej_uniform_n_avx2_done_256:
        cmpl	$8, %esi
        jl	L_mlkem_rej_uniform_n_avx2_done_128
        cmpl	$12, %r8d
        jl	L_mlkem_rej_uniform_n_avx2_done_128
L_mlkem_rej_uniform_n_avx2_start_128:
        vmovdqu	(%rdx), %xmm0
        vpshufb	%xmm9, %xmm0, %xmm0
        vpsrlw	$4, %xmm0, %xmm2
        vpblendw	$0xaa, %xmm2, %xmm0, %xmm0
        vpand	%xmm8, %xmm0, %xmm0
        vpcmpgtw	%xmm0, %xmm6, %xmm2
        vpmovmskb	%xmm2, %rbx
        movq	$0x5555, %r10
        pextl	%r10d, %ebx, %ebx
        movq	(%r9,%rbx,8), %xmm3
        vpaddb	%xmm7, %xmm3, %xmm4
        vpunpcklbw	%xmm4, %xmm3, %xmm3
        vpshufb	%xmm3, %xmm0, %xmm0
        vmovdqu	%xmm0, (%rdi)
        popcntl	%ebx, %ecx
        leaq	(%rdi,%rcx,2), %rdi
        subl	%ecx, %esi
        addq	$12, %rdx
        subl	$12, %r8d
        cmpl	$12, %r8d
        jl	L_mlkem_rej_uniform_n_avx2_done_128
        cmpl	$8, %esi
        jge	L_mlkem_rej_uniform_n_avx2_start_128
L_mlkem_rej_uniform_n_avx2_done_128:
        cmpl	$0x00, %r8d
        je	L_mlkem_rej_uniform_n_avx2_done_64
        cmpl	$0x00, %esi
        je	L_mlkem_rej_uniform_n_avx2_done_64
        movq	$0xfff0fff0fff0fff, %r15
        movq	$0x2000200020002000, %r10
        movq	$0xd010d010d010d01, %r11
        movq	$0x1000100010001000, %r12
L_mlkem_rej_uniform_n_avx2_start_64:
        movq	(%rdx), %rcx
        pdepq	%r15, %rcx, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_0_avx2_rej_large_0
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_n_avx2_done_64
L_mlkem_rej_uniform_0_avx2_rej_large_0:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_0_avx2_rej_large_1
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_n_avx2_done_64
L_mlkem_rej_uniform_0_avx2_rej_large_1:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_0_avx2_rej_large_2
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_n_avx2_done_64
L_mlkem_rej_uniform_0_avx2_rej_large_2:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_0_avx2_rej_large_3
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_n_avx2_done_64
L_mlkem_rej_uniform_0_avx2_rej_large_3:
        addq	$6, %rdx
        subl	$6, %r8d
        jle	L_mlkem_rej_uniform_n_avx2_done_64
        cmpl	$0x00, %esi
        jg	L_mlkem_rej_uniform_n_avx2_start_64
L_mlkem_rej_uniform_n_avx2_done_64:
        vzeroupper
        subl	%esi, %eax
        popq	%rbp
        popq	%r15
        popq	%r14
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	mlkem_rej_uniform_n_avx2,.-mlkem_rej_uniform_n_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_rej_uniform_avx2
.type	mlkem_rej_uniform_avx2,@function
.align	16
mlkem_rej_uniform_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_rej_uniform_avx2
.p2align	4
_mlkem_rej_uniform_avx2:
#endif /* __APPLE__ */
        pushq	%rbx
        pushq	%r12
        pushq	%r13
        pushq	%r14
        pushq	%r15
        pushq	%rbp
        movq	%rcx, %r8
        movl	%esi, %eax
        cmpl	$0x00, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
        cmpl	$8, %esi
        jl	L_mlkem_rej_uniform_avx2_done_128
        vmovdqu	L_mlkem_rej_q(%rip), %ymm6
        vmovdqu	L_mlkem_rej_ones(%rip), %ymm7
        vmovdqu	L_mlkem_rej_mask(%rip), %ymm8
        vmovdqu	L_mlkem_rej_shuffle(%rip), %ymm9
        leaq	L_mlkem_rej_idx(%rip), %r9
        movq	$0x1111111111111111, %r14
        movq	$0xe0c0a0806040200, %rbp
        movq	$0x101010101010101, %r13
        cmpl	$32, %esi
        jl	L_mlkem_rej_uniform_avx2_done_256
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        addq	$48, %rdx
        subl	$48, %r8d
        cmpl	$32, %esi
        jl	L_mlkem_rej_uniform_avx2_done_256
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        addq	$48, %rdx
        subl	$48, %r8d
        cmpl	$32, %esi
        jl	L_mlkem_rej_uniform_avx2_done_256
L_mlkem_rej_uniform_avx2_start_256:
        vpermq	$0x94, (%rdx), %ymm0
        vpermq	$0x94, 24(%rdx), %ymm1
        vpshufb	%ymm9, %ymm0, %ymm0
        vpshufb	%ymm9, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpblendw	$0xaa, %ymm2, %ymm0, %ymm0
        vpblendw	$0xaa, %ymm3, %ymm1, %ymm1
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpcmpgtw	%ymm0, %ymm6, %ymm2
        vpcmpgtw	%ymm1, %ymm6, %ymm3
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpmovmskb	%ymm2, %rbx
        movzbl	%bl, %r10d
        movzbl	%bh, %ecx
        movq	%rbx, %r11
        movq	%rbx, %r12
        shrq	$16, %r11
        shrq	$24, %r12
        andq	$0xff, %r11
        andq	$0xff, %r12
        movq	(%r9,%r10,8), %xmm2
        movq	(%r9,%rcx,8), %xmm3
        movq	(%r9,%r11,8), %xmm4
        movq	(%r9,%r12,8), %xmm5
        vinserti128	$0x01, %xmm4, %ymm2, %ymm2
        vinserti128	$0x01, %xmm5, %ymm3, %ymm3
        vpaddb	%ymm7, %ymm2, %ymm4
        vpaddb	%ymm7, %ymm3, %ymm5
        vpunpcklbw	%ymm4, %ymm2, %ymm2
        vpunpcklbw	%ymm5, %ymm3, %ymm3
        vpshufb	%ymm2, %ymm0, %ymm0
        vpshufb	%ymm3, %ymm1, %ymm1
        movq	%rbx, %r10
        movq	%rbx, %r11
        movq	%rbx, %r12
        andq	$0xff, %rbx
        shrq	$16, %r10
        shrq	$8, %r11
        shrq	$24, %r12
        andq	$0xff, %r10
        andq	$0xff, %r11
        popcntl	%ebx, %ebx
        popcntl	%r10d, %r10d
        popcntl	%r11d, %r11d
        popcntl	%r12d, %r12d
        vmovdqu	%xmm0, (%rdi)
        vextracti128	$0x01, %ymm0, %xmm0
        leaq	(%rdi,%rbx,2), %rdi
        subl	%ebx, %esi
        vmovdqu	%xmm0, (%rdi)
        leaq	(%rdi,%r10,2), %rdi
        subl	%r10d, %esi
        vmovdqu	%xmm1, (%rdi)
        vextracti128	$0x01, %ymm1, %xmm1
        leaq	(%rdi,%r11,2), %rdi
        subl	%r11d, %esi
        vmovdqu	%xmm1, (%rdi)
        leaq	(%rdi,%r12,2), %rdi
        subl	%r12d, %esi
        addq	$48, %rdx
        subl	$48, %r8d
        cmpl	$48, %r8d
        jl	L_mlkem_rej_uniform_avx2_done_256
        cmpl	$32, %esi
        jge	L_mlkem_rej_uniform_avx2_start_256
L_mlkem_rej_uniform_avx2_done_256:
        cmpl	$8, %esi
        jl	L_mlkem_rej_uniform_avx2_done_128
        cmpl	$12, %r8d
        jl	L_mlkem_rej_uniform_avx2_done_128
L_mlkem_rej_uniform_avx2_start_128:
        vmovdqu	(%rdx), %xmm0
        vpshufb	%xmm9, %xmm0, %xmm0
        vpsrlw	$4, %xmm0, %xmm2
        vpblendw	$0xaa, %xmm2, %xmm0, %xmm0
        vpand	%xmm8, %xmm0, %xmm0
        vpcmpgtw	%xmm0, %xmm6, %xmm2
        vpmovmskb	%xmm2, %rbx
        movq	$0x5555, %r10
        pextl	%r10d, %ebx, %ebx
        movq	(%r9,%rbx,8), %xmm3
        vpaddb	%xmm7, %xmm3, %xmm4
        vpunpcklbw	%xmm4, %xmm3, %xmm3
        vpshufb	%xmm3, %xmm0, %xmm0
        vmovdqu	%xmm0, (%rdi)
        popcntl	%ebx, %ecx
        leaq	(%rdi,%rcx,2), %rdi
        subl	%ecx, %esi
        addq	$12, %rdx
        subl	$12, %r8d
        cmpl	$12, %r8d
        jl	L_mlkem_rej_uniform_avx2_done_128
        cmpl	$8, %esi
        jge	L_mlkem_rej_uniform_avx2_start_128
L_mlkem_rej_uniform_avx2_done_128:
        cmpl	$0x00, %r8d
        je	L_mlkem_rej_uniform_avx2_done_64
        cmpl	$0x00, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
        movq	$0xfff0fff0fff0fff, %r15
        movq	$0x2000200020002000, %r10
        movq	$0xd010d010d010d01, %r11
        movq	$0x1000100010001000, %r12
L_mlkem_rej_uniform_avx2_start_64:
        movq	(%rdx), %rcx
        pdepq	%r15, %rcx, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_avx2_rej_large_0
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
L_mlkem_rej_uniform_avx2_rej_large_0:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_avx2_rej_large_1
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
L_mlkem_rej_uniform_avx2_rej_large_1:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_avx2_rej_large_2
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
L_mlkem_rej_uniform_avx2_rej_large_2:
        shrq	$16, %rcx
        cmpw	$0xd01, %cx
        jge	L_mlkem_rej_uniform_avx2_rej_large_3
        movw	%cx, (%rdi)
        addq	$2, %rdi
        subl	$0x01, %esi
        je	L_mlkem_rej_uniform_avx2_done_64
L_mlkem_rej_uniform_avx2_rej_large_3:
        addq	$6, %rdx
        subl	$6, %r8d
        jle	L_mlkem_rej_uniform_avx2_done_64
        cmpl	$0x00, %esi
        jg	L_mlkem_rej_uniform_avx2_start_64
L_mlkem_rej_uniform_avx2_done_64:
        vzeroupper
        subl	%esi, %eax
        popq	%rbp
        popq	%r15
        popq	%r14
        popq	%r13
        popq	%r12
        popq	%rbx
        repz retq
#ifndef __APPLE__
.size	mlkem_rej_uniform_avx2,.-mlkem_rej_uniform_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_249:
.quad	0x0024924900249249,0x0024924900249249
.quad	0x0024924900249249,0x0024924900249249
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_6db:
.quad	0x006db6db006db6db,0x006db6db006db6db
.quad	0x006db6db006db6db,0x006db6db006db6db
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_07:
.quad	0x0000000700000007,0x0000000700000007
.quad	0x0000000700000007,0x0000000700000007
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_70:
.quad	0x0007000000070000,0x0007000000070000
.quad	0x0007000000070000,0x0007000000070000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_3:
.quad	0x0003000300030003,0x0003000300030003
.quad	0x0003000300030003,0x0003000300030003
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_shuff:
.quad	0xff050403ff020100,0xff0b0a09ff080706
.quad	0xff090807ff060504,0xff0f0e0dff0c0b0a
#ifndef __APPLE__
.text
.globl	mlkem_cbd_eta3_avx2
.type	mlkem_cbd_eta3_avx2,@function
.align	16
mlkem_cbd_eta3_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_cbd_eta3_avx2
.p2align	4
_mlkem_cbd_eta3_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_mask_249(%rip), %ymm8
        vmovdqu	L_mlkem_mask_6db(%rip), %ymm9
        vmovdqu	L_mlkem_mask_07(%rip), %ymm10
        vmovdqu	L_mlkem_mask_70(%rip), %ymm11
        vmovdqu	L_mlkem_mask_3(%rip), %ymm12
        vmovdqu	L_mlkem_shuff(%rip), %ymm13
        vmovdqu	(%rsi), %ymm0
        vmovdqu	24(%rsi), %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpermq	$0x94, %ymm1, %ymm1
        vpshufb	%ymm13, %ymm0, %ymm0
        vpshufb	%ymm13, %ymm1, %ymm1
        vpsrld	$0x01, %ymm0, %ymm2
        vpsrld	$0x01, %ymm1, %ymm3
        vpsrld	$2, %ymm0, %ymm4
        vpsrld	$2, %ymm1, %ymm5
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpsrld	$3, %ymm0, %ymm2
        vpsrld	$3, %ymm1, %ymm3
        vpaddd	%ymm9, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm2, %ymm0, %ymm0
        vpsubd	%ymm3, %ymm1, %ymm1
        vpslld	$10, %ymm0, %ymm2
        vpslld	$10, %ymm1, %ymm3
        vpsrld	$12, %ymm0, %ymm4
        vpsrld	$12, %ymm1, %ymm5
        vpsrld	$2, %ymm0, %ymm6
        vpsrld	$2, %ymm1, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm11, %ymm6, %ymm6
        vpand	%ymm11, %ymm7, %ymm7
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpaddw	%ymm6, %ymm4, %ymm2
        vpaddw	%ymm7, %ymm5, %ymm3
        vpsubw	%ymm12, %ymm0, %ymm0
        vpsubw	%ymm12, %ymm1, %ymm1
        vpsubw	%ymm12, %ymm2, %ymm2
        vpsubw	%ymm12, %ymm3, %ymm3
        vpunpckldq	%ymm2, %ymm0, %ymm4
        vpunpckldq	%ymm3, %ymm1, %ymm5
        vpunpckhdq	%ymm2, %ymm0, %ymm6
        vpunpckhdq	%ymm3, %ymm1, %ymm7
        vperm2i128	$32, %ymm6, %ymm4, %ymm0
        vperm2i128	$32, %ymm7, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm4, %ymm2
        vperm2i128	$49, %ymm7, %ymm5, %ymm3
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm2, 32(%rdi)
        vmovdqu	%ymm1, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vmovdqu	48(%rsi), %ymm0
        vmovdqu	72(%rsi), %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpermq	$0x94, %ymm1, %ymm1
        vpshufb	%ymm13, %ymm0, %ymm0
        vpshufb	%ymm13, %ymm1, %ymm1
        vpsrld	$0x01, %ymm0, %ymm2
        vpsrld	$0x01, %ymm1, %ymm3
        vpsrld	$2, %ymm0, %ymm4
        vpsrld	$2, %ymm1, %ymm5
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpsrld	$3, %ymm0, %ymm2
        vpsrld	$3, %ymm1, %ymm3
        vpaddd	%ymm9, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm2, %ymm0, %ymm0
        vpsubd	%ymm3, %ymm1, %ymm1
        vpslld	$10, %ymm0, %ymm2
        vpslld	$10, %ymm1, %ymm3
        vpsrld	$12, %ymm0, %ymm4
        vpsrld	$12, %ymm1, %ymm5
        vpsrld	$2, %ymm0, %ymm6
        vpsrld	$2, %ymm1, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm11, %ymm6, %ymm6
        vpand	%ymm11, %ymm7, %ymm7
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpaddw	%ymm6, %ymm4, %ymm2
        vpaddw	%ymm7, %ymm5, %ymm3
        vpsubw	%ymm12, %ymm0, %ymm0
        vpsubw	%ymm12, %ymm1, %ymm1
        vpsubw	%ymm12, %ymm2, %ymm2
        vpsubw	%ymm12, %ymm3, %ymm3
        vpunpckldq	%ymm2, %ymm0, %ymm4
        vpunpckldq	%ymm3, %ymm1, %ymm5
        vpunpckhdq	%ymm2, %ymm0, %ymm6
        vpunpckhdq	%ymm3, %ymm1, %ymm7
        vperm2i128	$32, %ymm6, %ymm4, %ymm0
        vperm2i128	$32, %ymm7, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm4, %ymm2
        vperm2i128	$49, %ymm7, %ymm5, %ymm3
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm2, 160(%rdi)
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vmovdqu	96(%rsi), %ymm0
        vmovdqu	120(%rsi), %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpermq	$0x94, %ymm1, %ymm1
        vpshufb	%ymm13, %ymm0, %ymm0
        vpshufb	%ymm13, %ymm1, %ymm1
        vpsrld	$0x01, %ymm0, %ymm2
        vpsrld	$0x01, %ymm1, %ymm3
        vpsrld	$2, %ymm0, %ymm4
        vpsrld	$2, %ymm1, %ymm5
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpsrld	$3, %ymm0, %ymm2
        vpsrld	$3, %ymm1, %ymm3
        vpaddd	%ymm9, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm2, %ymm0, %ymm0
        vpsubd	%ymm3, %ymm1, %ymm1
        vpslld	$10, %ymm0, %ymm2
        vpslld	$10, %ymm1, %ymm3
        vpsrld	$12, %ymm0, %ymm4
        vpsrld	$12, %ymm1, %ymm5
        vpsrld	$2, %ymm0, %ymm6
        vpsrld	$2, %ymm1, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm11, %ymm6, %ymm6
        vpand	%ymm11, %ymm7, %ymm7
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpaddw	%ymm6, %ymm4, %ymm2
        vpaddw	%ymm7, %ymm5, %ymm3
        vpsubw	%ymm12, %ymm0, %ymm0
        vpsubw	%ymm12, %ymm1, %ymm1
        vpsubw	%ymm12, %ymm2, %ymm2
        vpsubw	%ymm12, %ymm3, %ymm3
        vpunpckldq	%ymm2, %ymm0, %ymm4
        vpunpckldq	%ymm3, %ymm1, %ymm5
        vpunpckhdq	%ymm2, %ymm0, %ymm6
        vpunpckhdq	%ymm3, %ymm1, %ymm7
        vperm2i128	$32, %ymm6, %ymm4, %ymm0
        vperm2i128	$32, %ymm7, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm4, %ymm2
        vperm2i128	$49, %ymm7, %ymm5, %ymm3
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm2, 288(%rdi)
        vmovdqu	%ymm1, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vmovdqu	144(%rsi), %ymm0
        vmovdqu	168(%rsi), %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpermq	$0x94, %ymm1, %ymm1
        vpshufb	%ymm13, %ymm0, %ymm0
        vpshufb	%ymm13, %ymm1, %ymm1
        vpsrld	$0x01, %ymm0, %ymm2
        vpsrld	$0x01, %ymm1, %ymm3
        vpsrld	$2, %ymm0, %ymm4
        vpsrld	$2, %ymm1, %ymm5
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpaddd	%ymm2, %ymm0, %ymm0
        vpaddd	%ymm3, %ymm1, %ymm1
        vpaddd	%ymm4, %ymm0, %ymm0
        vpaddd	%ymm5, %ymm1, %ymm1
        vpsrld	$3, %ymm0, %ymm2
        vpsrld	$3, %ymm1, %ymm3
        vpaddd	%ymm9, %ymm0, %ymm0
        vpaddd	%ymm9, %ymm1, %ymm1
        vpsubd	%ymm2, %ymm0, %ymm0
        vpsubd	%ymm3, %ymm1, %ymm1
        vpslld	$10, %ymm0, %ymm2
        vpslld	$10, %ymm1, %ymm3
        vpsrld	$12, %ymm0, %ymm4
        vpsrld	$12, %ymm1, %ymm5
        vpsrld	$2, %ymm0, %ymm6
        vpsrld	$2, %ymm1, %ymm7
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm10, %ymm4, %ymm4
        vpand	%ymm10, %ymm5, %ymm5
        vpand	%ymm11, %ymm6, %ymm6
        vpand	%ymm11, %ymm7, %ymm7
        vpaddw	%ymm2, %ymm0, %ymm0
        vpaddw	%ymm3, %ymm1, %ymm1
        vpaddw	%ymm6, %ymm4, %ymm2
        vpaddw	%ymm7, %ymm5, %ymm3
        vpsubw	%ymm12, %ymm0, %ymm0
        vpsubw	%ymm12, %ymm1, %ymm1
        vpsubw	%ymm12, %ymm2, %ymm2
        vpsubw	%ymm12, %ymm3, %ymm3
        vpunpckldq	%ymm2, %ymm0, %ymm4
        vpunpckldq	%ymm3, %ymm1, %ymm5
        vpunpckhdq	%ymm2, %ymm0, %ymm6
        vpunpckhdq	%ymm3, %ymm1, %ymm7
        vperm2i128	$32, %ymm6, %ymm4, %ymm0
        vperm2i128	$32, %ymm7, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm4, %ymm2
        vperm2i128	$49, %ymm7, %ymm5, %ymm3
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm2, 416(%rdi)
        vmovdqu	%ymm1, 448(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_cbd_eta3_avx2,.-mlkem_cbd_eta3_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_55:
.quad	0x5555555555555555,0x5555555555555555
.quad	0x5555555555555555,0x5555555555555555
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_33:
.quad	0x3333333333333333,0x3333333333333333
.quad	0x3333333333333333,0x3333333333333333
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_03:
.quad	0x0303030303030303,0x0303030303030303
.quad	0x0303030303030303,0x0303030303030303
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_mask_0f:
.quad	0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
.quad	0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
#ifndef __APPLE__
.text
.globl	mlkem_cbd_eta2_avx2
.type	mlkem_cbd_eta2_avx2,@function
.align	16
mlkem_cbd_eta2_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_cbd_eta2_avx2
.p2align	4
_mlkem_cbd_eta2_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_mask_55(%rip), %ymm8
        vmovdqu	L_mlkem_mask_33(%rip), %ymm9
        vmovdqu	L_mlkem_mask_03(%rip), %ymm10
        vmovdqu	L_mlkem_mask_0f(%rip), %ymm11
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vpsrlw	$0x01, %ymm0, %ymm2
        vpsrlw	$0x01, %ymm1, %ymm3
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddb	%ymm2, %ymm0, %ymm0
        vpaddb	%ymm3, %ymm1, %ymm1
        vpsrlw	$2, %ymm0, %ymm2
        vpsrlw	$2, %ymm1, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpaddb	%ymm9, %ymm0, %ymm0
        vpaddb	%ymm9, %ymm1, %ymm1
        vpsubb	%ymm2, %ymm0, %ymm0
        vpsubb	%ymm3, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpand	%ymm11, %ymm0, %ymm0
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpsubb	%ymm10, %ymm0, %ymm0
        vpsubb	%ymm10, %ymm1, %ymm1
        vpsubb	%ymm10, %ymm2, %ymm2
        vpsubb	%ymm10, %ymm3, %ymm3
        vpunpcklbw	%ymm2, %ymm0, %ymm4
        vpunpcklbw	%ymm3, %ymm1, %ymm5
        vpunpckhbw	%ymm2, %ymm0, %ymm6
        vpunpckhbw	%ymm3, %ymm1, %ymm7
        vpmovsxbw	%xmm4, %ymm0
        vpmovsxbw	%xmm5, %ymm1
        vextracti128	$0x01, %ymm4, %xmm2
        vextracti128	$0x01, %ymm5, %xmm3
        vpmovsxbw	%xmm2, %ymm2
        vpmovsxbw	%xmm3, %ymm3
        vpmovsxbw	%xmm6, %ymm4
        vpmovsxbw	%xmm7, %ymm5
        vextracti128	$0x01, %ymm6, %xmm6
        vextracti128	$0x01, %ymm7, %xmm7
        vpmovsxbw	%xmm6, %ymm6
        vpmovsxbw	%xmm7, %ymm7
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm4, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm6, 96(%rdi)
        vmovdqu	%ymm1, 128(%rdi)
        vmovdqu	%ymm5, 160(%rdi)
        vmovdqu	%ymm3, 192(%rdi)
        vmovdqu	%ymm7, 224(%rdi)
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	96(%rsi), %ymm1
        vpsrlw	$0x01, %ymm0, %ymm2
        vpsrlw	$0x01, %ymm1, %ymm3
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpaddb	%ymm2, %ymm0, %ymm0
        vpaddb	%ymm3, %ymm1, %ymm1
        vpsrlw	$2, %ymm0, %ymm2
        vpsrlw	$2, %ymm1, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpaddb	%ymm9, %ymm0, %ymm0
        vpaddb	%ymm9, %ymm1, %ymm1
        vpsubb	%ymm2, %ymm0, %ymm0
        vpsubb	%ymm3, %ymm1, %ymm1
        vpsrlw	$4, %ymm0, %ymm2
        vpsrlw	$4, %ymm1, %ymm3
        vpand	%ymm11, %ymm0, %ymm0
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpsubb	%ymm10, %ymm0, %ymm0
        vpsubb	%ymm10, %ymm1, %ymm1
        vpsubb	%ymm10, %ymm2, %ymm2
        vpsubb	%ymm10, %ymm3, %ymm3
        vpunpcklbw	%ymm2, %ymm0, %ymm4
        vpunpcklbw	%ymm3, %ymm1, %ymm5
        vpunpckhbw	%ymm2, %ymm0, %ymm6
        vpunpckhbw	%ymm3, %ymm1, %ymm7
        vpmovsxbw	%xmm4, %ymm0
        vpmovsxbw	%xmm5, %ymm1
        vextracti128	$0x01, %ymm4, %xmm2
        vextracti128	$0x01, %ymm5, %xmm3
        vpmovsxbw	%xmm2, %ymm2
        vpmovsxbw	%xmm3, %ymm3
        vpmovsxbw	%xmm6, %ymm4
        vpmovsxbw	%xmm7, %ymm5
        vextracti128	$0x01, %ymm6, %xmm6
        vextracti128	$0x01, %ymm7, %xmm7
        vpmovsxbw	%xmm6, %ymm6
        vpmovsxbw	%xmm7, %ymm7
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm4, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm6, 352(%rdi)
        vmovdqu	%ymm1, 384(%rdi)
        vmovdqu	%ymm5, 416(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm7, 480(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_cbd_eta2_avx2,.-mlkem_cbd_eta2_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_mask:
.short	0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff
.short	0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_shift:
.quad	0x0400000104000001,0x0400000104000001
.quad	0x0400000104000001,0x0400000104000001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_shlv:
.quad	0x000000000000000c,0x000000000000000c
.quad	0x000000000000000c,0x000000000000000c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_shuf:
.byte	0x00,0x01,0x02,0x03,0x04,0x08,0x09,0x0a
.byte	0x0b,0x0c,0xff,0xff,0xff,0xff,0xff,0xff
.byte	0x09,0x0a,0x0b,0x0c,0xff,0xff,0xff,0xff
.byte	0xff,0xff,0x00,0x01,0x02,0x03,0x04,0x08
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_v:
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_10_avx2_offset:
.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_mlkem_compress_10_avx2_shift12:
.short	0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000
.short	0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000
#ifndef __APPLE__
.text
.globl	mlkem_compress_10_avx2
.type	mlkem_compress_10_avx2,@function
.align	16
mlkem_compress_10_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_compress_10_avx2
.p2align	4
_mlkem_compress_10_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rsi), %ymm0
        vmovdqu	L_mlkem_compress_10_avx2_mask(%rip), %ymm9
        vmovdqu	L_mlkem_compress_10_avx2_shift(%rip), %ymm8
        vmovdqu	L_mlkem_compress_10_avx2_shlv(%rip), %ymm10
        vmovdqu	L_mlkem_compress_10_avx2_shuf(%rip), %ymm11
        vmovdqu	L_mlkem_compress_10_avx2_v(%rip), %ymm6
        vmovdqu	L_mlkem_compress_10_avx2_offset(%rip), %ymm12
        vmovdqu	L_mlkem_compress_10_avx2_shift12(%rip), %ymm13
        vpsllw	$3, %ymm6, %ymm7
L_mlkem_compress_10_avx2_start:
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, (%rdi)
        vmovdqu	%xmm1, 20(%rdi)
        vmovss	%xmm2, 16(%rdi)
        vmovss	%xmm4, 36(%rdi)
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	96(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 40(%rdi)
        vmovdqu	%xmm1, 60(%rdi)
        vmovss	%xmm2, 56(%rdi)
        vmovss	%xmm4, 76(%rdi)
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 80(%rdi)
        vmovdqu	%xmm1, 100(%rdi)
        vmovss	%xmm2, 96(%rdi)
        vmovss	%xmm4, 116(%rdi)
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	224(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 120(%rdi)
        vmovdqu	%xmm1, 140(%rdi)
        vmovss	%xmm2, 136(%rdi)
        vmovss	%xmm4, 156(%rdi)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 160(%rdi)
        vmovdqu	%xmm1, 180(%rdi)
        vmovss	%xmm2, 176(%rdi)
        vmovss	%xmm4, 196(%rdi)
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	352(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 200(%rdi)
        vmovdqu	%xmm1, 220(%rdi)
        vmovss	%xmm2, 216(%rdi)
        vmovss	%xmm4, 236(%rdi)
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	416(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 240(%rdi)
        vmovdqu	%xmm1, 260(%rdi)
        vmovss	%xmm2, 256(%rdi)
        vmovss	%xmm4, 276(%rdi)
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	480(%rsi), %ymm1
        vpmullw	%ymm7, %ymm0, %ymm2
        vpmullw	%ymm7, %ymm1, %ymm4
        vpaddw	%ymm12, %ymm0, %ymm3
        vpaddw	%ymm12, %ymm1, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm1, %ymm1
        vpmulhuw	%ymm6, %ymm0, %ymm0
        vpmulhuw	%ymm6, %ymm1, %ymm1
        vpsubw	%ymm3, %ymm2, %ymm3
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm3, %ymm2, %ymm2
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm2, %ymm2
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm2, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm13, %ymm0, %ymm0
        vpmulhrsw	%ymm13, %ymm1, %ymm1
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpmaddwd	%ymm8, %ymm0, %ymm0
        vpmaddwd	%ymm8, %ymm1, %ymm1
        vpsllvd	%ymm10, %ymm0, %ymm0
        vpsllvd	%ymm10, %ymm1, %ymm1
        vpsrlq	$12, %ymm0, %ymm0
        vpsrlq	$12, %ymm1, %ymm1
        vpshufb	%ymm11, %ymm0, %ymm0
        vpshufb	%ymm11, %ymm1, %ymm1
        vextracti128	$0x01, %ymm0, %xmm2
        vextracti128	$0x01, %ymm1, %xmm4
        vpblendw	$0xe0, %xmm2, %xmm0, %xmm0
        vpblendw	$0xe0, %xmm4, %xmm1, %xmm1
        vmovdqu	%xmm0, 280(%rdi)
        vmovdqu	%xmm1, 300(%rdi)
        vmovss	%xmm2, 296(%rdi)
        vmovss	%xmm4, 316(%rdi)
        addq	$0x140, %rdi
        addq	$0x200, %rsi
        subl	$0x01, %edx
        jg	L_mlkem_compress_10_avx2_start
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_compress_10_avx2,.-mlkem_compress_10_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_10_avx2_mask:
.long	0x7fe01ff8,0x7fe01ff8,0x7fe01ff8,0x7fe01ff8
.long	0x7fe01ff8,0x7fe01ff8,0x7fe01ff8,0x7fe01ff8
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_decompress_10_avx2_sllv:
.quad	0x0000000000000004,0x0000000000000004
.quad	0x0000000000000004,0x0000000000000004
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_10_avx2_q:
.long	0x0d013404,0x0d013404,0x0d013404,0x0d013404
.long	0x0d013404,0x0d013404,0x0d013404,0x0d013404
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_10_avx2_shuf:
.byte	0x00,0x01,0x01,0x02,0x02,0x03,0x03,0x04
.byte	0x05,0x06,0x06,0x07,0x07,0x08,0x08,0x09
.byte	0x02,0x03,0x03,0x04,0x04,0x05,0x05,0x06
.byte	0x07,0x08,0x08,0x09,0x09,0x0a,0x0a,0x0b
#ifndef __APPLE__
.text
.globl	mlkem_decompress_10_avx2
.type	mlkem_decompress_10_avx2,@function
.align	16
mlkem_decompress_10_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_decompress_10_avx2
.p2align	4
_mlkem_decompress_10_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_decompress_10_avx2_mask(%rip), %ymm4
        vmovdqu	L_mlkem_decompress_10_avx2_q(%rip), %ymm5
        vmovdqu	L_mlkem_decompress_10_avx2_shuf(%rip), %ymm6
        vmovdqu	L_mlkem_decompress_10_avx2_sllv(%rip), %ymm7
L_mlkem_decompress_10_avx2_start:
        vpermq	$0x94, (%rsi), %ymm0
        vpermq	$0x94, 20(%rsi), %ymm1
        vpermq	$0x94, 40(%rsi), %ymm2
        vpermq	$0x94, 60(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm5, %ymm0, %ymm0
        vpmulhrsw	%ymm5, %ymm1, %ymm1
        vpmulhrsw	%ymm5, %ymm2, %ymm2
        vpmulhrsw	%ymm5, %ymm3, %ymm3
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vpermq	$0x94, 80(%rsi), %ymm0
        vpermq	$0x94, 100(%rsi), %ymm1
        vpermq	$0x94, 120(%rsi), %ymm2
        vpermq	$0x94, 140(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm5, %ymm0, %ymm0
        vpmulhrsw	%ymm5, %ymm1, %ymm1
        vpmulhrsw	%ymm5, %ymm2, %ymm2
        vpmulhrsw	%ymm5, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vpermq	$0x94, 160(%rsi), %ymm0
        vpermq	$0x94, 180(%rsi), %ymm1
        vpermq	$0x94, 200(%rsi), %ymm2
        vpermq	$0x94, 220(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm5, %ymm0, %ymm0
        vpmulhrsw	%ymm5, %ymm1, %ymm1
        vpmulhrsw	%ymm5, %ymm2, %ymm2
        vpmulhrsw	%ymm5, %ymm3, %ymm3
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vpermq	$0x94, 240(%rsi), %ymm0
        vpermq	$0x94, 260(%rsi), %ymm1
        vpermq	$0x94, 280(%rsi), %ymm2
        vpermq	$0x94, 300(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm1, %ymm1
        vpsllvd	%ymm7, %ymm2, %ymm2
        vpsllvd	%ymm7, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm5, %ymm0, %ymm0
        vpmulhrsw	%ymm5, %ymm1, %ymm1
        vpmulhrsw	%ymm5, %ymm2, %ymm2
        vpmulhrsw	%ymm5, %ymm3, %ymm3
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm1, 416(%rdi)
        vmovdqu	%ymm2, 448(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        addq	$0x140, %rsi
        addq	$0x200, %rdi
        subl	$0x01, %edx
        jg	L_mlkem_decompress_10_avx2_start
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_decompress_10_avx2,.-mlkem_decompress_10_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_v:
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_off:
.short	0x0024,0x0024,0x0024,0x0024,0x0024,0x0024,0x0024,0x0024
.short	0x0024,0x0024,0x0024,0x0024,0x0024,0x0024,0x0024,0x0024
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_shift13:
.short	0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000
.short	0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_mask:
.short	0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff
.short	0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff,0x07ff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_shift:
.quad	0x0800000108000001,0x0800000108000001
.quad	0x0800000108000001,0x0800000108000001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_sllvd:
.long	0x0000000a,0x00000000,0x0000000a,0x00000000
.long	0x0000000a,0x00000000,0x0000000a,0x00000000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_srlvq:
.quad	0x000000000000000a,0x000000000000001e
.quad	0x000000000000000a,0x000000000000001e
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_11_avx2_shuf:
.byte	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07
.byte	0x08,0x09,0x0a,0xff,0xff,0xff,0xff,0xff
.byte	0x05,0x06,0x07,0x08,0x09,0x0a,0xff,0xff
.byte	0xff,0xff,0x00,0x00,0x01,0x02,0x03,0x04
#ifndef __APPLE__
.text
.globl	mlkem_compress_11_avx2
.type	mlkem_compress_11_avx2,@function
.align	16
mlkem_compress_11_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_compress_11_avx2
.p2align	4
_mlkem_compress_11_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rsi), %ymm0
        vmovdqu	L_mlkem_compress_11_avx2_v(%rip), %ymm7
        vmovdqu	L_mlkem_compress_11_avx2_off(%rip), %ymm8
        vmovdqu	L_mlkem_compress_11_avx2_shift13(%rip), %ymm9
        vmovdqu	L_mlkem_compress_11_avx2_mask(%rip), %ymm10
        vmovdqu	L_mlkem_compress_11_avx2_shift(%rip), %ymm11
        vmovdqu	L_mlkem_compress_11_avx2_sllvd(%rip), %ymm12
        vmovdqu	L_mlkem_compress_11_avx2_srlvq(%rip), %ymm13
        vmovdqu	L_mlkem_compress_11_avx2_shuf(%rip), %ymm14
        vpsllw	$3, %ymm7, %ymm6
L_mlkem_compress_11_avx2_start:
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, (%rdi)
        vmovq	%xmm1, 16(%rdi)
        vmovdqu	%xmm3, 22(%rdi)
        vmovq	%xmm4, 38(%rdi)
        vmovdqu	64(%rsi), %ymm0
        vmovdqu	96(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 44(%rdi)
        vmovq	%xmm1, 60(%rdi)
        vmovdqu	%xmm3, 66(%rdi)
        vmovq	%xmm4, 82(%rdi)
        vmovdqu	128(%rsi), %ymm0
        vmovdqu	160(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 88(%rdi)
        vmovq	%xmm1, 104(%rdi)
        vmovdqu	%xmm3, 110(%rdi)
        vmovq	%xmm4, 126(%rdi)
        vmovdqu	192(%rsi), %ymm0
        vmovdqu	224(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 132(%rdi)
        vmovq	%xmm1, 148(%rdi)
        vmovdqu	%xmm3, 154(%rdi)
        vmovq	%xmm4, 170(%rdi)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 176(%rdi)
        vmovq	%xmm1, 192(%rdi)
        vmovdqu	%xmm3, 198(%rdi)
        vmovq	%xmm4, 214(%rdi)
        vmovdqu	320(%rsi), %ymm0
        vmovdqu	352(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 220(%rdi)
        vmovq	%xmm1, 236(%rdi)
        vmovdqu	%xmm3, 242(%rdi)
        vmovq	%xmm4, 258(%rdi)
        vmovdqu	384(%rsi), %ymm0
        vmovdqu	416(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 264(%rdi)
        vmovq	%xmm1, 280(%rdi)
        vmovdqu	%xmm3, 286(%rdi)
        vmovq	%xmm4, 302(%rdi)
        vmovdqu	448(%rsi), %ymm0
        vmovdqu	480(%rsi), %ymm3
        vpmullw	%ymm6, %ymm0, %ymm1
        vpmullw	%ymm6, %ymm3, %ymm4
        vpaddw	%ymm8, %ymm0, %ymm2
        vpaddw	%ymm8, %ymm3, %ymm5
        vpsllw	$3, %ymm0, %ymm0
        vpsllw	$3, %ymm3, %ymm3
        vpmulhw	%ymm7, %ymm0, %ymm0
        vpmulhw	%ymm7, %ymm3, %ymm3
        vpsubw	%ymm2, %ymm1, %ymm2
        vpsubw	%ymm5, %ymm4, %ymm5
        vpandn	%ymm2, %ymm1, %ymm1
        vpandn	%ymm5, %ymm4, %ymm4
        vpsrlw	$15, %ymm1, %ymm1
        vpsrlw	$15, %ymm4, %ymm4
        vpsubw	%ymm1, %ymm0, %ymm0
        vpsubw	%ymm4, %ymm3, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm10, %ymm0, %ymm0
        vpand	%ymm10, %ymm3, %ymm3
        vpmaddwd	%ymm11, %ymm0, %ymm0
        vpmaddwd	%ymm11, %ymm3, %ymm3
        vpsllvd	%ymm12, %ymm0, %ymm0
        vpsllvd	%ymm12, %ymm3, %ymm3
        vpsrldq	$8, %ymm0, %ymm1
        vpsrldq	$8, %ymm3, %ymm4
        vpsrlvq	%ymm13, %ymm0, %ymm0
        vpsrlvq	%ymm13, %ymm3, %ymm3
        vpsllq	$34, %ymm1, %ymm1
        vpsllq	$34, %ymm4, %ymm4
        vpaddq	%ymm1, %ymm0, %ymm0
        vpaddq	%ymm4, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm3, %ymm3
        vextracti128	$0x01, %ymm0, %xmm1
        vextracti128	$0x01, %ymm3, %xmm4
        vpblendvb	%xmm14, %xmm1, %xmm0, %xmm0
        vpblendvb	%xmm14, %xmm4, %xmm3, %xmm3
        vmovdqu	%xmm0, 308(%rdi)
        vmovq	%xmm1, 324(%rdi)
        vmovdqu	%xmm3, 330(%rdi)
        vmovq	%xmm4, 346(%rdi)
        addq	$0x160, %rdi
        addq	$0x200, %rsi
        subl	$0x01, %edx
        jg	L_mlkem_compress_11_avx2_start
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_compress_11_avx2,.-mlkem_compress_11_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_q:
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_shuf:
.byte	0x00,0x01,0x01,0x02,0x02,0x03,0x04,0x05
.byte	0x05,0x06,0x06,0x07,0x08,0x09,0x09,0x0a
.byte	0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08
.byte	0x08,0x09,0x09,0x0a,0x0b,0x0c,0x0c,0x0d
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_sllv:
.long	0x00000000,0x00000001,0x00000000,0x00000000
.long	0x00000000,0x00000001,0x00000000,0x00000000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_srlv:
.quad	0x0000000000000000,0x0000000000000002
.quad	0x0000000000000000,0x0000000000000002
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_shift:
.short	0x0020,0x0004,0x0001,0x0020,0x0008,0x0001,0x0020,0x0004
.short	0x0020,0x0004,0x0001,0x0020,0x0008,0x0001,0x0020,0x0004
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_11_avx2_mask:
.short	0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0
.short	0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0,0x7ff0
#ifndef __APPLE__
.text
.globl	mlkem_decompress_11_avx2
.type	mlkem_decompress_11_avx2,@function
.align	16
mlkem_decompress_11_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_decompress_11_avx2
.p2align	4
_mlkem_decompress_11_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_decompress_11_avx2_q(%rip), %ymm4
        vmovdqu	L_mlkem_decompress_11_avx2_shuf(%rip), %ymm5
        vmovdqu	L_mlkem_decompress_11_avx2_sllv(%rip), %ymm6
        vmovdqu	L_mlkem_decompress_11_avx2_srlv(%rip), %ymm7
        vmovdqu	L_mlkem_decompress_11_avx2_shift(%rip), %ymm8
        vmovdqu	L_mlkem_decompress_11_avx2_mask(%rip), %ymm9
L_mlkem_decompress_11_avx2_start:
        vpermq	$0x94, (%rsi), %ymm0
        vpermq	$0x94, 22(%rsi), %ymm1
        vpermq	$0x94, 44(%rsi), %ymm2
        vpermq	$0x94, 66(%rsi), %ymm3
        vpshufb	%ymm5, %ymm0, %ymm0
        vpshufb	%ymm5, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm2, %ymm2
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm6, %ymm0, %ymm0
        vpsrlvd	%ymm6, %ymm1, %ymm1
        vpsrlvd	%ymm6, %ymm2, %ymm2
        vpsrlvd	%ymm6, %ymm3, %ymm3
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm1, %ymm1
        vpsrlvq	%ymm7, %ymm2, %ymm2
        vpsrlvq	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm8, %ymm0, %ymm0
        vpmullw	%ymm8, %ymm1, %ymm1
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpmulhrsw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm4, %ymm2, %ymm2
        vpmulhrsw	%ymm4, %ymm3, %ymm3
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vpermq	$0x94, 88(%rsi), %ymm0
        vpermq	$0x94, 110(%rsi), %ymm1
        vpermq	$0x94, 132(%rsi), %ymm2
        vpermq	$0x94, 154(%rsi), %ymm3
        vpshufb	%ymm5, %ymm0, %ymm0
        vpshufb	%ymm5, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm2, %ymm2
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm6, %ymm0, %ymm0
        vpsrlvd	%ymm6, %ymm1, %ymm1
        vpsrlvd	%ymm6, %ymm2, %ymm2
        vpsrlvd	%ymm6, %ymm3, %ymm3
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm1, %ymm1
        vpsrlvq	%ymm7, %ymm2, %ymm2
        vpsrlvq	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm8, %ymm0, %ymm0
        vpmullw	%ymm8, %ymm1, %ymm1
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpmulhrsw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm4, %ymm2, %ymm2
        vpmulhrsw	%ymm4, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vpermq	$0x94, 176(%rsi), %ymm0
        vpermq	$0x94, 198(%rsi), %ymm1
        vpermq	$0x94, 220(%rsi), %ymm2
        vpermq	$0x94, 242(%rsi), %ymm3
        vpshufb	%ymm5, %ymm0, %ymm0
        vpshufb	%ymm5, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm2, %ymm2
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm6, %ymm0, %ymm0
        vpsrlvd	%ymm6, %ymm1, %ymm1
        vpsrlvd	%ymm6, %ymm2, %ymm2
        vpsrlvd	%ymm6, %ymm3, %ymm3
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm1, %ymm1
        vpsrlvq	%ymm7, %ymm2, %ymm2
        vpsrlvq	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm8, %ymm0, %ymm0
        vpmullw	%ymm8, %ymm1, %ymm1
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpmulhrsw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm4, %ymm2, %ymm2
        vpmulhrsw	%ymm4, %ymm3, %ymm3
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vpermq	$0x94, 264(%rsi), %ymm0
        vpermq	$0x94, 286(%rsi), %ymm1
        vpermq	$0x94, 308(%rsi), %ymm2
        vpermq	$0x94, 330(%rsi), %ymm3
        vpshufb	%ymm5, %ymm0, %ymm0
        vpshufb	%ymm5, %ymm1, %ymm1
        vpshufb	%ymm5, %ymm2, %ymm2
        vpshufb	%ymm5, %ymm3, %ymm3
        vpsrlvd	%ymm6, %ymm0, %ymm0
        vpsrlvd	%ymm6, %ymm1, %ymm1
        vpsrlvd	%ymm6, %ymm2, %ymm2
        vpsrlvd	%ymm6, %ymm3, %ymm3
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm1, %ymm1
        vpsrlvq	%ymm7, %ymm2, %ymm2
        vpsrlvq	%ymm7, %ymm3, %ymm3
        vpmullw	%ymm8, %ymm0, %ymm0
        vpmullw	%ymm8, %ymm1, %ymm1
        vpmullw	%ymm8, %ymm2, %ymm2
        vpmullw	%ymm8, %ymm3, %ymm3
        vpsrlw	$0x01, %ymm0, %ymm0
        vpsrlw	$0x01, %ymm1, %ymm1
        vpsrlw	$0x01, %ymm2, %ymm2
        vpsrlw	$0x01, %ymm3, %ymm3
        vpand	%ymm9, %ymm0, %ymm0
        vpand	%ymm9, %ymm1, %ymm1
        vpand	%ymm9, %ymm2, %ymm2
        vpand	%ymm9, %ymm3, %ymm3
        vpmulhrsw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm4, %ymm1, %ymm1
        vpmulhrsw	%ymm4, %ymm2, %ymm2
        vpmulhrsw	%ymm4, %ymm3, %ymm3
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm1, 416(%rdi)
        vmovdqu	%ymm2, 448(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        addq	$0x160, %rsi
        addq	$0x200, %rdi
        subl	$0x01, %edx
        jg	L_mlkem_decompress_11_avx2_start
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_decompress_11_avx2,.-mlkem_decompress_11_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_4_avx2_mask:
.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_mlkem_compress_4_avx2_shift:
.short	0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200
.short	0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_4_avx2_perm:
.long	0x00000000,0x00000004,0x00000001,0x00000005
.long	0x00000002,0x00000006,0x00000003,0x00000007
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_4_avx2_v:
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_4_avx2_shift12:
.short	0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001
.short	0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001,0x1001
#ifndef __APPLE__
.text
.globl	mlkem_compress_4_avx2
.type	mlkem_compress_4_avx2,@function
.align	16
mlkem_compress_4_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_compress_4_avx2
.p2align	4
_mlkem_compress_4_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_compress_4_avx2_mask(%rip), %ymm8
        vmovdqu	L_mlkem_compress_4_avx2_shift(%rip), %ymm9
        vmovdqu	L_mlkem_compress_4_avx2_perm(%rip), %ymm10
        vmovdqu	L_mlkem_compress_4_avx2_v(%rip), %ymm11
        vmovdqu	L_mlkem_compress_4_avx2_shift12(%rip), %ymm12
        vpmulhw	(%rsi), %ymm11, %ymm0
        vpmulhw	32(%rsi), %ymm11, %ymm1
        vpmulhw	64(%rsi), %ymm11, %ymm2
        vpmulhw	96(%rsi), %ymm11, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm1, %ymm1
        vpmulhrsw	%ymm9, %ymm2, %ymm2
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpackuswb	%ymm3, %ymm2, %ymm2
        vpmaddubsw	%ymm12, %ymm0, %ymm0
        vpmaddubsw	%ymm12, %ymm2, %ymm2
        vpackuswb	%ymm2, %ymm0, %ymm0
        vpmulhw	128(%rsi), %ymm11, %ymm4
        vpmulhw	160(%rsi), %ymm11, %ymm5
        vpmulhw	192(%rsi), %ymm11, %ymm6
        vpmulhw	224(%rsi), %ymm11, %ymm7
        vpmulhrsw	%ymm9, %ymm4, %ymm4
        vpmulhrsw	%ymm9, %ymm5, %ymm5
        vpmulhrsw	%ymm9, %ymm6, %ymm6
        vpmulhrsw	%ymm9, %ymm7, %ymm7
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpand	%ymm8, %ymm6, %ymm6
        vpand	%ymm8, %ymm7, %ymm7
        vpackuswb	%ymm5, %ymm4, %ymm4
        vpackuswb	%ymm7, %ymm6, %ymm6
        vpmaddubsw	%ymm12, %ymm4, %ymm4
        vpmaddubsw	%ymm12, %ymm6, %ymm6
        vpackuswb	%ymm6, %ymm4, %ymm4
        vpermd	%ymm0, %ymm10, %ymm0
        vpermd	%ymm4, %ymm10, %ymm4
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm4, 32(%rdi)
        vpmulhw	256(%rsi), %ymm11, %ymm0
        vpmulhw	288(%rsi), %ymm11, %ymm1
        vpmulhw	320(%rsi), %ymm11, %ymm2
        vpmulhw	352(%rsi), %ymm11, %ymm3
        vpmulhrsw	%ymm9, %ymm0, %ymm0
        vpmulhrsw	%ymm9, %ymm1, %ymm1
        vpmulhrsw	%ymm9, %ymm2, %ymm2
        vpmulhrsw	%ymm9, %ymm3, %ymm3
        vpand	%ymm8, %ymm0, %ymm0
        vpand	%ymm8, %ymm1, %ymm1
        vpand	%ymm8, %ymm2, %ymm2
        vpand	%ymm8, %ymm3, %ymm3
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpackuswb	%ymm3, %ymm2, %ymm2
        vpmaddubsw	%ymm12, %ymm0, %ymm0
        vpmaddubsw	%ymm12, %ymm2, %ymm2
        vpackuswb	%ymm2, %ymm0, %ymm0
        vpmulhw	384(%rsi), %ymm11, %ymm4
        vpmulhw	416(%rsi), %ymm11, %ymm5
        vpmulhw	448(%rsi), %ymm11, %ymm6
        vpmulhw	480(%rsi), %ymm11, %ymm7
        vpmulhrsw	%ymm9, %ymm4, %ymm4
        vpmulhrsw	%ymm9, %ymm5, %ymm5
        vpmulhrsw	%ymm9, %ymm6, %ymm6
        vpmulhrsw	%ymm9, %ymm7, %ymm7
        vpand	%ymm8, %ymm4, %ymm4
        vpand	%ymm8, %ymm5, %ymm5
        vpand	%ymm8, %ymm6, %ymm6
        vpand	%ymm8, %ymm7, %ymm7
        vpackuswb	%ymm5, %ymm4, %ymm4
        vpackuswb	%ymm7, %ymm6, %ymm6
        vpmaddubsw	%ymm12, %ymm4, %ymm4
        vpmaddubsw	%ymm12, %ymm6, %ymm6
        vpackuswb	%ymm6, %ymm4, %ymm4
        vpermd	%ymm0, %ymm10, %ymm0
        vpermd	%ymm4, %ymm10, %ymm4
        vmovdqu	%ymm0, 64(%rdi)
        vmovdqu	%ymm4, 96(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_compress_4_avx2,.-mlkem_compress_4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_4_avx2_mask:
.long	0x00f0000f,0x00f0000f,0x00f0000f,0x00f0000f
.long	0x00f0000f,0x00f0000f,0x00f0000f,0x00f0000f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_4_avx2_shift:
.long	0x00800800,0x00800800,0x00800800,0x00800800
.long	0x00800800,0x00800800,0x00800800,0x00800800
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_4_avx2_q:
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_4_avx2_shuf:
.byte	0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01
.byte	0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03
.byte	0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05
.byte	0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07
#ifndef __APPLE__
.text
.globl	mlkem_decompress_4_avx2
.type	mlkem_decompress_4_avx2,@function
.align	16
mlkem_decompress_4_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_decompress_4_avx2
.p2align	4
_mlkem_decompress_4_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_decompress_4_avx2_mask(%rip), %ymm4
        vmovdqu	L_mlkem_decompress_4_avx2_shift(%rip), %ymm5
        vmovdqu	L_mlkem_decompress_4_avx2_shuf(%rip), %ymm6
        vmovdqu	L_mlkem_decompress_4_avx2_q(%rip), %ymm7
        vpbroadcastq	(%rsi), %ymm0
        vpbroadcastq	8(%rsi), %ymm1
        vpbroadcastq	16(%rsi), %ymm2
        vpbroadcastq	24(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmullw	%ymm5, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm5, %ymm2, %ymm2
        vpmullw	%ymm5, %ymm3, %ymm3
        vpmulhrsw	%ymm7, %ymm0, %ymm0
        vpmulhrsw	%ymm7, %ymm1, %ymm1
        vpmulhrsw	%ymm7, %ymm2, %ymm2
        vpmulhrsw	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, (%rdi)
        vmovdqu	%ymm1, 32(%rdi)
        vmovdqu	%ymm2, 64(%rdi)
        vmovdqu	%ymm3, 96(%rdi)
        vpbroadcastq	32(%rsi), %ymm0
        vpbroadcastq	40(%rsi), %ymm1
        vpbroadcastq	48(%rsi), %ymm2
        vpbroadcastq	56(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmullw	%ymm5, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm5, %ymm2, %ymm2
        vpmullw	%ymm5, %ymm3, %ymm3
        vpmulhrsw	%ymm7, %ymm0, %ymm0
        vpmulhrsw	%ymm7, %ymm1, %ymm1
        vpmulhrsw	%ymm7, %ymm2, %ymm2
        vpmulhrsw	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 128(%rdi)
        vmovdqu	%ymm1, 160(%rdi)
        vmovdqu	%ymm2, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vpbroadcastq	64(%rsi), %ymm0
        vpbroadcastq	72(%rsi), %ymm1
        vpbroadcastq	80(%rsi), %ymm2
        vpbroadcastq	88(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmullw	%ymm5, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm5, %ymm2, %ymm2
        vpmullw	%ymm5, %ymm3, %ymm3
        vpmulhrsw	%ymm7, %ymm0, %ymm0
        vpmulhrsw	%ymm7, %ymm1, %ymm1
        vpmulhrsw	%ymm7, %ymm2, %ymm2
        vpmulhrsw	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 256(%rdi)
        vmovdqu	%ymm1, 288(%rdi)
        vmovdqu	%ymm2, 320(%rdi)
        vmovdqu	%ymm3, 352(%rdi)
        vpbroadcastq	96(%rsi), %ymm0
        vpbroadcastq	104(%rsi), %ymm1
        vpbroadcastq	112(%rsi), %ymm2
        vpbroadcastq	120(%rsi), %ymm3
        vpshufb	%ymm6, %ymm0, %ymm0
        vpshufb	%ymm6, %ymm1, %ymm1
        vpshufb	%ymm6, %ymm2, %ymm2
        vpshufb	%ymm6, %ymm3, %ymm3
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpand	%ymm4, %ymm2, %ymm2
        vpand	%ymm4, %ymm3, %ymm3
        vpmullw	%ymm5, %ymm0, %ymm0
        vpmullw	%ymm5, %ymm1, %ymm1
        vpmullw	%ymm5, %ymm2, %ymm2
        vpmullw	%ymm5, %ymm3, %ymm3
        vpmulhrsw	%ymm7, %ymm0, %ymm0
        vpmulhrsw	%ymm7, %ymm1, %ymm1
        vpmulhrsw	%ymm7, %ymm2, %ymm2
        vpmulhrsw	%ymm7, %ymm3, %ymm3
        vmovdqu	%ymm0, 384(%rdi)
        vmovdqu	%ymm1, 416(%rdi)
        vmovdqu	%ymm2, 448(%rdi)
        vmovdqu	%ymm3, 480(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_decompress_4_avx2,.-mlkem_decompress_4_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_v:
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
.short	0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf,0x4ebf
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_shift:
.short	0x0400,0x0400,0x0400,0x0400,0x0400,0x0400,0x0400,0x0400
.short	0x0400,0x0400,0x0400,0x0400,0x0400,0x0400,0x0400,0x0400
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_mask:
.short	0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f
.short	0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_shift1:
.short	0x2001,0x2001,0x2001,0x2001,0x2001,0x2001,0x2001,0x2001
.short	0x2001,0x2001,0x2001,0x2001,0x2001,0x2001,0x2001,0x2001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_shift2:
.long	0x04000001,0x04000001,0x04000001,0x04000001
.long	0x04000001,0x04000001,0x04000001,0x04000001
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	32
#else
.p2align	5
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_shlv:
.quad	0x000000000000000c,0x000000000000000c
.quad	0x000000000000000c,0x000000000000000c
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_compress_5_avx2_shuffle:
.byte	0x00,0x01,0x02,0x03,0x04,0xff,0xff,0xff
.byte	0xff,0xff,0x08,0x09,0x0a,0x0b,0x0c,0xff
.byte	0x09,0x0a,0x0b,0x0c,0xff,0x00,0x01,0x02
.byte	0x03,0x04,0xff,0xff,0xff,0xff,0xff,0x08
#ifndef __APPLE__
.text
.globl	mlkem_compress_5_avx2
.type	mlkem_compress_5_avx2,@function
.align	16
mlkem_compress_5_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_compress_5_avx2
.p2align	4
_mlkem_compress_5_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rsi), %ymm0
        vmovdqu	L_mlkem_compress_5_avx2_v(%rip), %ymm2
        vmovdqu	L_mlkem_compress_5_avx2_shift(%rip), %ymm3
        vmovdqu	L_mlkem_compress_5_avx2_mask(%rip), %ymm4
        vmovdqu	L_mlkem_compress_5_avx2_shift1(%rip), %ymm5
        vmovdqu	L_mlkem_compress_5_avx2_shift2(%rip), %ymm6
        vmovdqu	L_mlkem_compress_5_avx2_shlv(%rip), %ymm7
        vmovdqu	L_mlkem_compress_5_avx2_shuffle(%rip), %ymm8
        vpmulhw	(%rsi), %ymm2, %ymm0
        vpmulhw	32(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, (%rdi)
        movss	%xmm1, 16(%rdi)
        vpmulhw	64(%rsi), %ymm2, %ymm0
        vpmulhw	96(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 20(%rdi)
        movss	%xmm1, 36(%rdi)
        vpmulhw	128(%rsi), %ymm2, %ymm0
        vpmulhw	160(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 40(%rdi)
        movss	%xmm1, 56(%rdi)
        vpmulhw	192(%rsi), %ymm2, %ymm0
        vpmulhw	224(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 60(%rdi)
        movss	%xmm1, 76(%rdi)
        vpmulhw	256(%rsi), %ymm2, %ymm0
        vpmulhw	288(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 80(%rdi)
        movss	%xmm1, 96(%rdi)
        vpmulhw	320(%rsi), %ymm2, %ymm0
        vpmulhw	352(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 100(%rdi)
        movss	%xmm1, 116(%rdi)
        vpmulhw	384(%rsi), %ymm2, %ymm0
        vpmulhw	416(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 120(%rdi)
        movss	%xmm1, 136(%rdi)
        vpmulhw	448(%rsi), %ymm2, %ymm0
        vpmulhw	480(%rsi), %ymm2, %ymm1
        vpmulhrsw	%ymm3, %ymm0, %ymm0
        vpmulhrsw	%ymm3, %ymm1, %ymm1
        vpand	%ymm4, %ymm0, %ymm0
        vpand	%ymm4, %ymm1, %ymm1
        vpackuswb	%ymm1, %ymm0, %ymm0
        vpmaddubsw	%ymm5, %ymm0, %ymm0
        vpmaddwd	%ymm6, %ymm0, %ymm0
        vpsllvd	%ymm7, %ymm0, %ymm0
        vpsrlvq	%ymm7, %ymm0, %ymm0
        vpshufb	%ymm8, %ymm0, %ymm0
        vextracti128	$0x01, %ymm0, %xmm1
        vpblendvb	%xmm8, %xmm1, %xmm0, %xmm0
        vmovdqu	%xmm0, 140(%rdi)
        movss	%xmm1, 156(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_compress_5_avx2,.-mlkem_compress_5_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_5_avx2_q:
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
.short	0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01,0x0d01
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_5_avx2_shuf:
.byte	0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02
.byte	0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x04
.byte	0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x07
.byte	0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x09
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_5_avx2_mask:
.short	0x001f,0x03e0,0x007c,0x0f80,0x01f0,0x003e,0x07c0,0x00f8
.short	0x001f,0x03e0,0x007c,0x0f80,0x01f0,0x003e,0x07c0,0x00f8
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_decompress_5_avx2_shift:
.short	0x0400,0x0020,0x0100,0x0008,0x0040,0x0200,0x0010,0x0080
.short	0x0400,0x0020,0x0100,0x0008,0x0040,0x0200,0x0010,0x0080
#ifndef __APPLE__
.text
.globl	mlkem_decompress_5_avx2
.type	mlkem_decompress_5_avx2,@function
.align	16
mlkem_decompress_5_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_decompress_5_avx2
.p2align	4
_mlkem_decompress_5_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_decompress_5_avx2_q(%rip), %ymm1
        vmovdqu	L_mlkem_decompress_5_avx2_shuf(%rip), %ymm2
        vmovdqu	L_mlkem_decompress_5_avx2_mask(%rip), %ymm3
        vmovdqu	L_mlkem_decompress_5_avx2_shift(%rip), %ymm4
        vbroadcasti128	(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, (%rdi)
        vbroadcasti128	10(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 32(%rdi)
        vbroadcasti128	20(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 64(%rdi)
        vbroadcasti128	30(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 96(%rdi)
        vbroadcasti128	40(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 128(%rdi)
        vbroadcasti128	50(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 160(%rdi)
        vbroadcasti128	60(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 192(%rdi)
        vbroadcasti128	70(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 224(%rdi)
        vbroadcasti128	80(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 256(%rdi)
        vbroadcasti128	90(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 288(%rdi)
        vbroadcasti128	100(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 320(%rdi)
        vbroadcasti128	110(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 352(%rdi)
        vbroadcasti128	120(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 384(%rdi)
        vbroadcasti128	130(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 416(%rdi)
        vbroadcasti128	140(%rsi), %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 448(%rdi)
        vmovq	150(%rsi), %xmm0
        movzwq	158(%rsi), %rdx
        vpinsrq	$0x01, %rdx, %xmm0, %xmm0
        vinserti128	$0x01, %xmm0, %ymm0, %ymm0
        vpshufb	%ymm2, %ymm0, %ymm0
        vpand	%ymm3, %ymm0, %ymm0
        vpmullw	%ymm4, %ymm0, %ymm0
        vpmulhrsw	%ymm1, %ymm0, %ymm0
        vmovdqu	%ymm0, 480(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_decompress_5_avx2,.-mlkem_decompress_5_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_from_msg_avx2_shift:
.long	0x00000003,0x00000002,0x00000001,0x00000000
.long	0x00000003,0x00000002,0x00000001,0x00000000
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_from_msg_avx2_shuf:
.byte	0x00,0x01,0x04,0x05,0x08,0x09,0x0c,0x0d
.byte	0x02,0x03,0x06,0x07,0x0a,0x0b,0x0e,0x0f
.byte	0x00,0x01,0x04,0x05,0x08,0x09,0x0c,0x0d
.byte	0x02,0x03,0x06,0x07,0x0a,0x0b,0x0e,0x0f
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_from_msg_avx2_hqs:
.short	0x0681,0x0681,0x0681,0x0681,0x0681,0x0681,0x0681,0x0681
.short	0x0681,0x0681,0x0681,0x0681,0x0681,0x0681,0x0681,0x0681
#ifndef __APPLE__
.text
.globl	mlkem_from_msg_avx2
.type	mlkem_from_msg_avx2,@function
.align	16
mlkem_from_msg_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_from_msg_avx2
.p2align	4
_mlkem_from_msg_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rsi), %ymm0
        vmovdqu	L_mlkem_from_msg_avx2_shift(%rip), %ymm9
        vmovdqu	L_mlkem_from_msg_avx2_shuf(%rip), %ymm10
        vmovdqu	L_mlkem_from_msg_avx2_hqs(%rip), %ymm11
        vpshufd	$0x00, %ymm0, %ymm4
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsllw	$12, %ymm4, %ymm1
        vpsllw	$8, %ymm4, %ymm2
        vpsllw	$4, %ymm4, %ymm3
        vpsraw	$15, %ymm1, %ymm1
        vpsraw	$15, %ymm2, %ymm2
        vpsraw	$15, %ymm3, %ymm3
        vpsraw	$15, %ymm4, %ymm4
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm11, %ymm4, %ymm4
        vpunpcklqdq	%ymm2, %ymm1, %ymm5
        vpunpckhqdq	%ymm2, %ymm1, %ymm7
        vpunpcklqdq	%ymm4, %ymm3, %ymm6
        vpunpckhqdq	%ymm4, %ymm3, %ymm8
        vperm2i128	$32, %ymm6, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm5, %ymm3
        vperm2i128	$32, %ymm8, %ymm7, %ymm2
        vperm2i128	$49, %ymm8, %ymm7, %ymm4
        vmovdqu	%ymm1, (%rdi)
        vmovdqu	%ymm2, 32(%rdi)
        vmovdqu	%ymm3, 256(%rdi)
        vmovdqu	%ymm4, 288(%rdi)
        vpshufd	$0x55, %ymm0, %ymm4
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsllw	$12, %ymm4, %ymm1
        vpsllw	$8, %ymm4, %ymm2
        vpsllw	$4, %ymm4, %ymm3
        vpsraw	$15, %ymm1, %ymm1
        vpsraw	$15, %ymm2, %ymm2
        vpsraw	$15, %ymm3, %ymm3
        vpsraw	$15, %ymm4, %ymm4
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm11, %ymm4, %ymm4
        vpunpcklqdq	%ymm2, %ymm1, %ymm5
        vpunpckhqdq	%ymm2, %ymm1, %ymm7
        vpunpcklqdq	%ymm4, %ymm3, %ymm6
        vpunpckhqdq	%ymm4, %ymm3, %ymm8
        vperm2i128	$32, %ymm6, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm5, %ymm3
        vperm2i128	$32, %ymm8, %ymm7, %ymm2
        vperm2i128	$49, %ymm8, %ymm7, %ymm4
        vmovdqu	%ymm1, 64(%rdi)
        vmovdqu	%ymm2, 96(%rdi)
        vmovdqu	%ymm3, 320(%rdi)
        vmovdqu	%ymm4, 352(%rdi)
        vpshufd	$0xaa, %ymm0, %ymm4
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsllw	$12, %ymm4, %ymm1
        vpsllw	$8, %ymm4, %ymm2
        vpsllw	$4, %ymm4, %ymm3
        vpsraw	$15, %ymm1, %ymm1
        vpsraw	$15, %ymm2, %ymm2
        vpsraw	$15, %ymm3, %ymm3
        vpsraw	$15, %ymm4, %ymm4
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm11, %ymm4, %ymm4
        vpunpcklqdq	%ymm2, %ymm1, %ymm5
        vpunpckhqdq	%ymm2, %ymm1, %ymm7
        vpunpcklqdq	%ymm4, %ymm3, %ymm6
        vpunpckhqdq	%ymm4, %ymm3, %ymm8
        vperm2i128	$32, %ymm6, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm5, %ymm3
        vperm2i128	$32, %ymm8, %ymm7, %ymm2
        vperm2i128	$49, %ymm8, %ymm7, %ymm4
        vmovdqu	%ymm1, 128(%rdi)
        vmovdqu	%ymm2, 160(%rdi)
        vmovdqu	%ymm3, 384(%rdi)
        vmovdqu	%ymm4, 416(%rdi)
        vpshufd	$0xff, %ymm0, %ymm4
        vpsllvd	%ymm9, %ymm4, %ymm4
        vpshufb	%ymm10, %ymm4, %ymm4
        vpsllw	$12, %ymm4, %ymm1
        vpsllw	$8, %ymm4, %ymm2
        vpsllw	$4, %ymm4, %ymm3
        vpsraw	$15, %ymm1, %ymm1
        vpsraw	$15, %ymm2, %ymm2
        vpsraw	$15, %ymm3, %ymm3
        vpsraw	$15, %ymm4, %ymm4
        vpand	%ymm11, %ymm1, %ymm1
        vpand	%ymm11, %ymm2, %ymm2
        vpand	%ymm11, %ymm3, %ymm3
        vpand	%ymm11, %ymm4, %ymm4
        vpunpcklqdq	%ymm2, %ymm1, %ymm5
        vpunpckhqdq	%ymm2, %ymm1, %ymm7
        vpunpcklqdq	%ymm4, %ymm3, %ymm6
        vpunpckhqdq	%ymm4, %ymm3, %ymm8
        vperm2i128	$32, %ymm6, %ymm5, %ymm1
        vperm2i128	$49, %ymm6, %ymm5, %ymm3
        vperm2i128	$32, %ymm8, %ymm7, %ymm2
        vperm2i128	$49, %ymm8, %ymm7, %ymm4
        vmovdqu	%ymm1, 192(%rdi)
        vmovdqu	%ymm2, 224(%rdi)
        vmovdqu	%ymm3, 448(%rdi)
        vmovdqu	%ymm4, 480(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_from_msg_avx2,.-mlkem_from_msg_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_to_msg_avx2_hqs:
.short	0x0680,0x0680,0x0680,0x0680,0x0680,0x0680,0x0680,0x0680
.short	0x0680,0x0680,0x0680,0x0680,0x0680,0x0680,0x0680,0x0680
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_to_msg_avx2_hhqs:
.short	0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1
.short	0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1,0xfcc1
#ifndef __APPLE__
.text
.globl	mlkem_to_msg_avx2
.type	mlkem_to_msg_avx2,@function
.align	16
mlkem_to_msg_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_to_msg_avx2
.p2align	4
_mlkem_to_msg_avx2:
#endif /* __APPLE__ */
        vmovdqu	L_mlkem_to_msg_avx2_hqs(%rip), %ymm8
        vmovdqu	L_mlkem_to_msg_avx2_hhqs(%rip), %ymm9
        vpsubw	(%rsi), %ymm8, %ymm0
        vpsubw	32(%rsi), %ymm8, %ymm1
        vpsubw	64(%rsi), %ymm8, %ymm2
        vpsubw	96(%rsi), %ymm8, %ymm3
        vpsraw	$15, %ymm0, %ymm4
        vpsraw	$15, %ymm1, %ymm5
        vpsraw	$15, %ymm2, %ymm6
        vpsraw	$15, %ymm3, %ymm7
        vpxor	%ymm4, %ymm0, %ymm0
        vpxor	%ymm5, %ymm1, %ymm1
        vpxor	%ymm6, %ymm2, %ymm2
        vpxor	%ymm7, %ymm3, %ymm3
        vpaddw	%ymm9, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm9, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpacksswb	%ymm1, %ymm0, %ymm0
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm0, %edx
        vpmovmskb	%ymm2, %eax
        movl	%edx, (%rdi)
        movl	%eax, 4(%rdi)
        vpsubw	128(%rsi), %ymm8, %ymm0
        vpsubw	160(%rsi), %ymm8, %ymm1
        vpsubw	192(%rsi), %ymm8, %ymm2
        vpsubw	224(%rsi), %ymm8, %ymm3
        vpsraw	$15, %ymm0, %ymm4
        vpsraw	$15, %ymm1, %ymm5
        vpsraw	$15, %ymm2, %ymm6
        vpsraw	$15, %ymm3, %ymm7
        vpxor	%ymm4, %ymm0, %ymm0
        vpxor	%ymm5, %ymm1, %ymm1
        vpxor	%ymm6, %ymm2, %ymm2
        vpxor	%ymm7, %ymm3, %ymm3
        vpaddw	%ymm9, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm9, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpacksswb	%ymm1, %ymm0, %ymm0
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm0, %edx
        vpmovmskb	%ymm2, %eax
        movl	%edx, 8(%rdi)
        movl	%eax, 12(%rdi)
        vpsubw	256(%rsi), %ymm8, %ymm0
        vpsubw	288(%rsi), %ymm8, %ymm1
        vpsubw	320(%rsi), %ymm8, %ymm2
        vpsubw	352(%rsi), %ymm8, %ymm3
        vpsraw	$15, %ymm0, %ymm4
        vpsraw	$15, %ymm1, %ymm5
        vpsraw	$15, %ymm2, %ymm6
        vpsraw	$15, %ymm3, %ymm7
        vpxor	%ymm4, %ymm0, %ymm0
        vpxor	%ymm5, %ymm1, %ymm1
        vpxor	%ymm6, %ymm2, %ymm2
        vpxor	%ymm7, %ymm3, %ymm3
        vpaddw	%ymm9, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm9, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpacksswb	%ymm1, %ymm0, %ymm0
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm0, %edx
        vpmovmskb	%ymm2, %eax
        movl	%edx, 16(%rdi)
        movl	%eax, 20(%rdi)
        vpsubw	384(%rsi), %ymm8, %ymm0
        vpsubw	416(%rsi), %ymm8, %ymm1
        vpsubw	448(%rsi), %ymm8, %ymm2
        vpsubw	480(%rsi), %ymm8, %ymm3
        vpsraw	$15, %ymm0, %ymm4
        vpsraw	$15, %ymm1, %ymm5
        vpsraw	$15, %ymm2, %ymm6
        vpsraw	$15, %ymm3, %ymm7
        vpxor	%ymm4, %ymm0, %ymm0
        vpxor	%ymm5, %ymm1, %ymm1
        vpxor	%ymm6, %ymm2, %ymm2
        vpxor	%ymm7, %ymm3, %ymm3
        vpaddw	%ymm9, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm9, %ymm2, %ymm2
        vpaddw	%ymm9, %ymm3, %ymm3
        vpacksswb	%ymm1, %ymm0, %ymm0
        vpacksswb	%ymm3, %ymm2, %ymm2
        vpermq	$0xd8, %ymm0, %ymm0
        vpermq	$0xd8, %ymm2, %ymm2
        vpmovmskb	%ymm0, %edx
        vpmovmskb	%ymm2, %eax
        movl	%edx, 24(%rdi)
        movl	%eax, 28(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_to_msg_avx2,.-mlkem_to_msg_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_from_bytes_avx2_shuf:
.byte	0x00,0x01,0x02,0xff,0x03,0x04,0x05,0xff
.byte	0x06,0x07,0x08,0xff,0x09,0x0a,0x0b,0xff
.byte	0x04,0x05,0x06,0xff,0x07,0x08,0x09,0xff
.byte	0x0a,0x0b,0x0c,0xff,0x0d,0x0e,0x0f,0xff
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_from_bytes_avx2_mask:
.long	0x00000fff,0x00000fff,0x00000fff,0x00000fff
.long	0x00000fff,0x00000fff,0x00000fff,0x00000fff
#ifndef __APPLE__
.text
.globl	mlkem_from_bytes_avx2
.type	mlkem_from_bytes_avx2,@function
.align	16
mlkem_from_bytes_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_from_bytes_avx2
.p2align	4
_mlkem_from_bytes_avx2:
#endif /* __APPLE__ */
        vmovdqu	(%rsi), %ymm0
        vmovdqu	L_mlkem_from_bytes_avx2_shuf(%rip), %ymm12
        vmovdqu	L_mlkem_from_bytes_avx2_mask(%rip), %ymm13
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	128(%rsi), %ymm4
        vmovdqu	160(%rsi), %ymm5
        vpermq	$0xe9, %ymm5, %ymm7
        vpermq	$0x00, %ymm5, %ymm8
        vpermq	$62, %ymm4, %ymm6
        vpermq	$0x40, %ymm4, %ymm9
        vpermq	$3, %ymm3, %ymm5
        vpermq	$0x94, %ymm3, %ymm4
        vpermq	$0xe9, %ymm2, %ymm3
        vpermq	$0x00, %ymm2, %ymm10
        vpermq	$62, %ymm1, %ymm2
        vpermq	$0x40, %ymm1, %ymm11
        vpermq	$3, %ymm0, %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpblendd	$0xc0, %ymm8, %ymm6, %ymm6
        vpblendd	$0xfc, %ymm9, %ymm5, %ymm5
        vpblendd	$0xc0, %ymm10, %ymm2, %ymm2
        vpblendd	$0xfc, %ymm11, %ymm1, %ymm1
        vpshufb	%ymm12, %ymm0, %ymm0
        vpshufb	%ymm12, %ymm1, %ymm1
        vpshufb	%ymm12, %ymm2, %ymm2
        vpshufb	%ymm12, %ymm3, %ymm3
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpshufb	%ymm12, %ymm6, %ymm6
        vpshufb	%ymm12, %ymm7, %ymm7
        vpandn	%ymm0, %ymm13, %ymm8
        vpandn	%ymm1, %ymm13, %ymm9
        vpandn	%ymm2, %ymm13, %ymm10
        vpandn	%ymm3, %ymm13, %ymm11
        vpand	%ymm0, %ymm13, %ymm0
        vpand	%ymm1, %ymm13, %ymm1
        vpand	%ymm2, %ymm13, %ymm2
        vpand	%ymm3, %ymm13, %ymm3
        vpslld	$4, %ymm8, %ymm8
        vpslld	$4, %ymm9, %ymm9
        vpslld	$4, %ymm10, %ymm10
        vpslld	$4, %ymm11, %ymm11
        vpor	%ymm8, %ymm0, %ymm0
        vpor	%ymm9, %ymm1, %ymm1
        vpor	%ymm10, %ymm2, %ymm2
        vpor	%ymm11, %ymm3, %ymm3
        vpandn	%ymm4, %ymm13, %ymm8
        vpandn	%ymm5, %ymm13, %ymm9
        vpandn	%ymm6, %ymm13, %ymm10
        vpandn	%ymm7, %ymm13, %ymm11
        vpand	%ymm4, %ymm13, %ymm4
        vpand	%ymm5, %ymm13, %ymm5
        vpand	%ymm6, %ymm13, %ymm6
        vpand	%ymm7, %ymm13, %ymm7
        vpslld	$4, %ymm8, %ymm8
        vpslld	$4, %ymm9, %ymm9
        vpslld	$4, %ymm10, %ymm10
        vpslld	$4, %ymm11, %ymm11
        vpor	%ymm8, %ymm4, %ymm4
        vpor	%ymm9, %ymm5, %ymm5
        vpor	%ymm10, %ymm6, %ymm6
        vpor	%ymm11, %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	192(%rsi), %ymm0
        vmovdqu	224(%rsi), %ymm1
        vmovdqu	256(%rsi), %ymm2
        vmovdqu	288(%rsi), %ymm3
        vmovdqu	320(%rsi), %ymm4
        vmovdqu	352(%rsi), %ymm5
        vpermq	$0xe9, %ymm5, %ymm7
        vpermq	$0x00, %ymm5, %ymm8
        vpermq	$62, %ymm4, %ymm6
        vpermq	$0x40, %ymm4, %ymm9
        vpermq	$3, %ymm3, %ymm5
        vpermq	$0x94, %ymm3, %ymm4
        vpermq	$0xe9, %ymm2, %ymm3
        vpermq	$0x00, %ymm2, %ymm10
        vpermq	$62, %ymm1, %ymm2
        vpermq	$0x40, %ymm1, %ymm11
        vpermq	$3, %ymm0, %ymm1
        vpermq	$0x94, %ymm0, %ymm0
        vpblendd	$0xc0, %ymm8, %ymm6, %ymm6
        vpblendd	$0xfc, %ymm9, %ymm5, %ymm5
        vpblendd	$0xc0, %ymm10, %ymm2, %ymm2
        vpblendd	$0xfc, %ymm11, %ymm1, %ymm1
        vpshufb	%ymm12, %ymm0, %ymm0
        vpshufb	%ymm12, %ymm1, %ymm1
        vpshufb	%ymm12, %ymm2, %ymm2
        vpshufb	%ymm12, %ymm3, %ymm3
        vpshufb	%ymm12, %ymm4, %ymm4
        vpshufb	%ymm12, %ymm5, %ymm5
        vpshufb	%ymm12, %ymm6, %ymm6
        vpshufb	%ymm12, %ymm7, %ymm7
        vpandn	%ymm0, %ymm13, %ymm8
        vpandn	%ymm1, %ymm13, %ymm9
        vpandn	%ymm2, %ymm13, %ymm10
        vpandn	%ymm3, %ymm13, %ymm11
        vpand	%ymm0, %ymm13, %ymm0
        vpand	%ymm1, %ymm13, %ymm1
        vpand	%ymm2, %ymm13, %ymm2
        vpand	%ymm3, %ymm13, %ymm3
        vpslld	$4, %ymm8, %ymm8
        vpslld	$4, %ymm9, %ymm9
        vpslld	$4, %ymm10, %ymm10
        vpslld	$4, %ymm11, %ymm11
        vpor	%ymm8, %ymm0, %ymm0
        vpor	%ymm9, %ymm1, %ymm1
        vpor	%ymm10, %ymm2, %ymm2
        vpor	%ymm11, %ymm3, %ymm3
        vpandn	%ymm4, %ymm13, %ymm8
        vpandn	%ymm5, %ymm13, %ymm9
        vpandn	%ymm6, %ymm13, %ymm10
        vpandn	%ymm7, %ymm13, %ymm11
        vpand	%ymm4, %ymm13, %ymm4
        vpand	%ymm5, %ymm13, %ymm5
        vpand	%ymm6, %ymm13, %ymm6
        vpand	%ymm7, %ymm13, %ymm7
        vpslld	$4, %ymm8, %ymm8
        vpslld	$4, %ymm9, %ymm9
        vpslld	$4, %ymm10, %ymm10
        vpslld	$4, %ymm11, %ymm11
        vpor	%ymm8, %ymm4, %ymm4
        vpor	%ymm9, %ymm5, %ymm5
        vpor	%ymm10, %ymm6, %ymm6
        vpor	%ymm11, %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)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_from_bytes_avx2,.-mlkem_from_bytes_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_to_bytes_avx2_mask:
.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_mlkem_to_bytes_avx2_shuf:
.byte	0x00,0x01,0x02,0x04,0x05,0x06,0x08,0x09
.byte	0x0a,0x0c,0x0d,0x0e,0xff,0xff,0xff,0xff
.byte	0x05,0x06,0x08,0x09,0x0a,0x0c,0x0d,0x0e
.byte	0xff,0xff,0xff,0xff,0x00,0x01,0x02,0x04
#ifndef __APPLE__
.data
#else
.section	__DATA,__data
#endif /* __APPLE__ */
#ifndef __APPLE__
.align	16
#else
.p2align	4
#endif /* __APPLE__ */
L_mlkem_to_bytes_avx2_perm:
.long	0x00000000,0x00000001,0x00000002,0x00000007
.long	0x00000004,0x00000005,0x00000003,0x00000006
#ifndef __APPLE__
.text
.globl	mlkem_to_bytes_avx2
.type	mlkem_to_bytes_avx2,@function
.align	16
mlkem_to_bytes_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_to_bytes_avx2
.p2align	4
_mlkem_to_bytes_avx2:
#endif /* __APPLE__ */
        vmovdqu	mlkem_q(%rip), %ymm12
        vmovdqu	L_mlkem_to_bytes_avx2_mask(%rip), %ymm13
        vmovdqu	L_mlkem_to_bytes_avx2_shuf(%rip), %ymm14
        vmovdqu	L_mlkem_to_bytes_avx2_perm(%rip), %ymm15
        vmovdqu	(%rsi), %ymm0
        vmovdqu	32(%rsi), %ymm1
        vmovdqu	64(%rsi), %ymm2
        vmovdqu	96(%rsi), %ymm3
        vmovdqu	128(%rsi), %ymm4
        vmovdqu	160(%rsi), %ymm5
        vmovdqu	192(%rsi), %ymm6
        vmovdqu	224(%rsi), %ymm7
        vpsubw	%ymm12, %ymm0, %ymm8
        vpsubw	%ymm12, %ymm1, %ymm9
        vpsubw	%ymm12, %ymm2, %ymm10
        vpsubw	%ymm12, %ymm3, %ymm11
        vpsraw	$15, %ymm8, %ymm0
        vpsraw	$15, %ymm9, %ymm1
        vpsraw	$15, %ymm10, %ymm2
        vpsraw	$15, %ymm11, %ymm3
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpand	%ymm12, %ymm2, %ymm2
        vpand	%ymm12, %ymm3, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm10, %ymm2, %ymm2
        vpaddw	%ymm11, %ymm3, %ymm3
        vpsubw	%ymm12, %ymm4, %ymm8
        vpsubw	%ymm12, %ymm5, %ymm9
        vpsubw	%ymm12, %ymm6, %ymm10
        vpsubw	%ymm12, %ymm7, %ymm11
        vpsraw	$15, %ymm8, %ymm4
        vpsraw	$15, %ymm9, %ymm5
        vpsraw	$15, %ymm10, %ymm6
        vpsraw	$15, %ymm11, %ymm7
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vpand	%ymm12, %ymm6, %ymm6
        vpand	%ymm12, %ymm7, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpaddw	%ymm10, %ymm6, %ymm6
        vpaddw	%ymm11, %ymm7, %ymm7
        vpsrld	$16, %ymm0, %ymm8
        vpsrld	$16, %ymm1, %ymm9
        vpsrld	$16, %ymm2, %ymm10
        vpsrld	$16, %ymm3, %ymm11
        vpand	%ymm0, %ymm13, %ymm0
        vpand	%ymm1, %ymm13, %ymm1
        vpand	%ymm2, %ymm13, %ymm2
        vpand	%ymm3, %ymm13, %ymm3
        vpslld	$12, %ymm8, %ymm8
        vpslld	$12, %ymm9, %ymm9
        vpslld	$12, %ymm10, %ymm10
        vpslld	$12, %ymm11, %ymm11
        vpor	%ymm8, %ymm0, %ymm0
        vpor	%ymm9, %ymm1, %ymm1
        vpor	%ymm10, %ymm2, %ymm2
        vpor	%ymm11, %ymm3, %ymm3
        vpsrld	$16, %ymm4, %ymm8
        vpsrld	$16, %ymm5, %ymm9
        vpsrld	$16, %ymm6, %ymm10
        vpsrld	$16, %ymm7, %ymm11
        vpand	%ymm4, %ymm13, %ymm4
        vpand	%ymm5, %ymm13, %ymm5
        vpand	%ymm6, %ymm13, %ymm6
        vpand	%ymm7, %ymm13, %ymm7
        vpslld	$12, %ymm8, %ymm8
        vpslld	$12, %ymm9, %ymm9
        vpslld	$12, %ymm10, %ymm10
        vpslld	$12, %ymm11, %ymm11
        vpor	%ymm8, %ymm4, %ymm4
        vpor	%ymm9, %ymm5, %ymm5
        vpor	%ymm10, %ymm6, %ymm6
        vpor	%ymm11, %ymm7, %ymm7
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm1, %ymm1
        vpshufb	%ymm14, %ymm2, %ymm2
        vpshufb	%ymm14, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm4, %ymm4
        vpshufb	%ymm14, %ymm5, %ymm5
        vpshufb	%ymm14, %ymm6, %ymm6
        vpshufb	%ymm14, %ymm7, %ymm7
        vpermd	%ymm0, %ymm15, %ymm0
        vpermd	%ymm1, %ymm15, %ymm1
        vpermd	%ymm2, %ymm15, %ymm2
        vpermd	%ymm3, %ymm15, %ymm3
        vpermd	%ymm4, %ymm15, %ymm4
        vpermd	%ymm5, %ymm15, %ymm5
        vpermd	%ymm6, %ymm15, %ymm6
        vpermd	%ymm7, %ymm15, %ymm7
        vpermq	$2, %ymm6, %ymm8
        vpermq	$0x90, %ymm7, %ymm7
        vpermq	$9, %ymm5, %ymm9
        vpermq	$0x40, %ymm6, %ymm6
        vpermq	$0x00, %ymm5, %ymm5
        vpblendd	$63, %ymm4, %ymm5, %ymm5
        vpermq	$2, %ymm2, %ymm10
        vpermq	$0x90, %ymm3, %ymm4
        vpermq	$9, %ymm1, %ymm11
        vpermq	$0x40, %ymm2, %ymm3
        vpermq	$0x00, %ymm1, %ymm2
        vpblendd	$63, %ymm0, %ymm2, %ymm2
        vpblendd	$3, %ymm8, %ymm7, %ymm7
        vpblendd	$15, %ymm9, %ymm6, %ymm6
        vpblendd	$3, %ymm10, %ymm4, %ymm4
        vpblendd	$15, %ymm11, %ymm3, %ymm3
        vmovdqu	%ymm2, (%rdi)
        vmovdqu	%ymm3, 32(%rdi)
        vmovdqu	%ymm4, 64(%rdi)
        vmovdqu	%ymm5, 96(%rdi)
        vmovdqu	%ymm6, 128(%rdi)
        vmovdqu	%ymm7, 160(%rdi)
        vmovdqu	256(%rsi), %ymm0
        vmovdqu	288(%rsi), %ymm1
        vmovdqu	320(%rsi), %ymm2
        vmovdqu	352(%rsi), %ymm3
        vmovdqu	384(%rsi), %ymm4
        vmovdqu	416(%rsi), %ymm5
        vmovdqu	448(%rsi), %ymm6
        vmovdqu	480(%rsi), %ymm7
        vpsubw	%ymm12, %ymm0, %ymm8
        vpsubw	%ymm12, %ymm1, %ymm9
        vpsubw	%ymm12, %ymm2, %ymm10
        vpsubw	%ymm12, %ymm3, %ymm11
        vpsraw	$15, %ymm8, %ymm0
        vpsraw	$15, %ymm9, %ymm1
        vpsraw	$15, %ymm10, %ymm2
        vpsraw	$15, %ymm11, %ymm3
        vpand	%ymm12, %ymm0, %ymm0
        vpand	%ymm12, %ymm1, %ymm1
        vpand	%ymm12, %ymm2, %ymm2
        vpand	%ymm12, %ymm3, %ymm3
        vpaddw	%ymm8, %ymm0, %ymm0
        vpaddw	%ymm9, %ymm1, %ymm1
        vpaddw	%ymm10, %ymm2, %ymm2
        vpaddw	%ymm11, %ymm3, %ymm3
        vpsubw	%ymm12, %ymm4, %ymm8
        vpsubw	%ymm12, %ymm5, %ymm9
        vpsubw	%ymm12, %ymm6, %ymm10
        vpsubw	%ymm12, %ymm7, %ymm11
        vpsraw	$15, %ymm8, %ymm4
        vpsraw	$15, %ymm9, %ymm5
        vpsraw	$15, %ymm10, %ymm6
        vpsraw	$15, %ymm11, %ymm7
        vpand	%ymm12, %ymm4, %ymm4
        vpand	%ymm12, %ymm5, %ymm5
        vpand	%ymm12, %ymm6, %ymm6
        vpand	%ymm12, %ymm7, %ymm7
        vpaddw	%ymm8, %ymm4, %ymm4
        vpaddw	%ymm9, %ymm5, %ymm5
        vpaddw	%ymm10, %ymm6, %ymm6
        vpaddw	%ymm11, %ymm7, %ymm7
        vpsrld	$16, %ymm0, %ymm8
        vpsrld	$16, %ymm1, %ymm9
        vpsrld	$16, %ymm2, %ymm10
        vpsrld	$16, %ymm3, %ymm11
        vpand	%ymm0, %ymm13, %ymm0
        vpand	%ymm1, %ymm13, %ymm1
        vpand	%ymm2, %ymm13, %ymm2
        vpand	%ymm3, %ymm13, %ymm3
        vpslld	$12, %ymm8, %ymm8
        vpslld	$12, %ymm9, %ymm9
        vpslld	$12, %ymm10, %ymm10
        vpslld	$12, %ymm11, %ymm11
        vpor	%ymm8, %ymm0, %ymm0
        vpor	%ymm9, %ymm1, %ymm1
        vpor	%ymm10, %ymm2, %ymm2
        vpor	%ymm11, %ymm3, %ymm3
        vpsrld	$16, %ymm4, %ymm8
        vpsrld	$16, %ymm5, %ymm9
        vpsrld	$16, %ymm6, %ymm10
        vpsrld	$16, %ymm7, %ymm11
        vpand	%ymm4, %ymm13, %ymm4
        vpand	%ymm5, %ymm13, %ymm5
        vpand	%ymm6, %ymm13, %ymm6
        vpand	%ymm7, %ymm13, %ymm7
        vpslld	$12, %ymm8, %ymm8
        vpslld	$12, %ymm9, %ymm9
        vpslld	$12, %ymm10, %ymm10
        vpslld	$12, %ymm11, %ymm11
        vpor	%ymm8, %ymm4, %ymm4
        vpor	%ymm9, %ymm5, %ymm5
        vpor	%ymm10, %ymm6, %ymm6
        vpor	%ymm11, %ymm7, %ymm7
        vpshufb	%ymm14, %ymm0, %ymm0
        vpshufb	%ymm14, %ymm1, %ymm1
        vpshufb	%ymm14, %ymm2, %ymm2
        vpshufb	%ymm14, %ymm3, %ymm3
        vpshufb	%ymm14, %ymm4, %ymm4
        vpshufb	%ymm14, %ymm5, %ymm5
        vpshufb	%ymm14, %ymm6, %ymm6
        vpshufb	%ymm14, %ymm7, %ymm7
        vpermd	%ymm0, %ymm15, %ymm0
        vpermd	%ymm1, %ymm15, %ymm1
        vpermd	%ymm2, %ymm15, %ymm2
        vpermd	%ymm3, %ymm15, %ymm3
        vpermd	%ymm4, %ymm15, %ymm4
        vpermd	%ymm5, %ymm15, %ymm5
        vpermd	%ymm6, %ymm15, %ymm6
        vpermd	%ymm7, %ymm15, %ymm7
        vpermq	$2, %ymm6, %ymm8
        vpermq	$0x90, %ymm7, %ymm7
        vpermq	$9, %ymm5, %ymm9
        vpermq	$0x40, %ymm6, %ymm6
        vpermq	$0x00, %ymm5, %ymm5
        vpblendd	$63, %ymm4, %ymm5, %ymm5
        vpermq	$2, %ymm2, %ymm10
        vpermq	$0x90, %ymm3, %ymm4
        vpermq	$9, %ymm1, %ymm11
        vpermq	$0x40, %ymm2, %ymm3
        vpermq	$0x00, %ymm1, %ymm2
        vpblendd	$63, %ymm0, %ymm2, %ymm2
        vpblendd	$3, %ymm8, %ymm7, %ymm7
        vpblendd	$15, %ymm9, %ymm6, %ymm6
        vpblendd	$3, %ymm10, %ymm4, %ymm4
        vpblendd	$15, %ymm11, %ymm3, %ymm3
        vmovdqu	%ymm2, 192(%rdi)
        vmovdqu	%ymm3, 224(%rdi)
        vmovdqu	%ymm4, 256(%rdi)
        vmovdqu	%ymm5, 288(%rdi)
        vmovdqu	%ymm6, 320(%rdi)
        vmovdqu	%ymm7, 352(%rdi)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_to_bytes_avx2,.-mlkem_to_bytes_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_cmp_avx2
.type	mlkem_cmp_avx2,@function
.align	16
mlkem_cmp_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_cmp_avx2
.p2align	4
_mlkem_cmp_avx2:
#endif /* __APPLE__ */
        vpxor	%ymm2, %ymm2, %ymm2
        vpxor	%ymm3, %ymm3, %ymm3
        movl	$0x00, %ecx
        movl	$-1, %r8d
        vmovdqu	(%rdi), %ymm0
        vmovdqu	32(%rdi), %ymm1
        vpxor	(%rsi), %ymm0, %ymm0
        vpxor	32(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	64(%rdi), %ymm0
        vmovdqu	96(%rdi), %ymm1
        vpxor	64(%rsi), %ymm0, %ymm0
        vpxor	96(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	128(%rdi), %ymm0
        vmovdqu	160(%rdi), %ymm1
        vpxor	128(%rsi), %ymm0, %ymm0
        vpxor	160(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	192(%rdi), %ymm0
        vmovdqu	224(%rdi), %ymm1
        vpxor	192(%rsi), %ymm0, %ymm0
        vpxor	224(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	256(%rdi), %ymm0
        vmovdqu	288(%rdi), %ymm1
        vpxor	256(%rsi), %ymm0, %ymm0
        vpxor	288(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	320(%rdi), %ymm0
        vmovdqu	352(%rdi), %ymm1
        vpxor	320(%rsi), %ymm0, %ymm0
        vpxor	352(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	384(%rdi), %ymm0
        vmovdqu	416(%rdi), %ymm1
        vpxor	384(%rsi), %ymm0, %ymm0
        vpxor	416(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	448(%rdi), %ymm0
        vmovdqu	480(%rdi), %ymm1
        vpxor	448(%rsi), %ymm0, %ymm0
        vpxor	480(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	512(%rdi), %ymm0
        vmovdqu	544(%rdi), %ymm1
        vpxor	512(%rsi), %ymm0, %ymm0
        vpxor	544(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	576(%rdi), %ymm0
        vmovdqu	608(%rdi), %ymm1
        vpxor	576(%rsi), %ymm0, %ymm0
        vpxor	608(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	640(%rdi), %ymm0
        vmovdqu	672(%rdi), %ymm1
        vpxor	640(%rsi), %ymm0, %ymm0
        vpxor	672(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	704(%rdi), %ymm0
        vmovdqu	736(%rdi), %ymm1
        vpxor	704(%rsi), %ymm0, %ymm0
        vpxor	736(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        subl	$0x300, %edx
        jz	L_mlkem_cmp_avx2_done
        vmovdqu	768(%rdi), %ymm0
        vmovdqu	800(%rdi), %ymm1
        vpxor	768(%rsi), %ymm0, %ymm0
        vpxor	800(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	832(%rdi), %ymm0
        vmovdqu	864(%rdi), %ymm1
        vpxor	832(%rsi), %ymm0, %ymm0
        vpxor	864(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	896(%rdi), %ymm0
        vmovdqu	928(%rdi), %ymm1
        vpxor	896(%rsi), %ymm0, %ymm0
        vpxor	928(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	960(%rdi), %ymm0
        vmovdqu	992(%rdi), %ymm1
        vpxor	960(%rsi), %ymm0, %ymm0
        vpxor	992(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1024(%rdi), %ymm0
        vmovdqu	1056(%rdi), %ymm1
        vpxor	1024(%rsi), %ymm0, %ymm0
        vpxor	1056(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        subl	$0x140, %edx
        jz	L_mlkem_cmp_avx2_done
        vmovdqu	1088(%rdi), %ymm0
        vmovdqu	1120(%rdi), %ymm1
        vpxor	1088(%rsi), %ymm0, %ymm0
        vpxor	1120(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1152(%rdi), %ymm0
        vmovdqu	1184(%rdi), %ymm1
        vpxor	1152(%rsi), %ymm0, %ymm0
        vpxor	1184(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1216(%rdi), %ymm0
        vmovdqu	1248(%rdi), %ymm1
        vpxor	1216(%rsi), %ymm0, %ymm0
        vpxor	1248(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1280(%rdi), %ymm0
        vmovdqu	1312(%rdi), %ymm1
        vpxor	1280(%rsi), %ymm0, %ymm0
        vpxor	1312(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1344(%rdi), %ymm0
        vmovdqu	1376(%rdi), %ymm1
        vpxor	1344(%rsi), %ymm0, %ymm0
        vpxor	1376(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1408(%rdi), %ymm0
        vmovdqu	1440(%rdi), %ymm1
        vpxor	1408(%rsi), %ymm0, %ymm0
        vpxor	1440(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1472(%rdi), %ymm0
        vmovdqu	1504(%rdi), %ymm1
        vpxor	1472(%rsi), %ymm0, %ymm0
        vpxor	1504(%rsi), %ymm1, %ymm1
        vpor	%ymm0, %ymm2, %ymm2
        vpor	%ymm1, %ymm3, %ymm3
        vmovdqu	1536(%rdi), %ymm0
        vpxor	1536(%rsi), %ymm0, %ymm0
        vpor	%ymm0, %ymm2, %ymm2
L_mlkem_cmp_avx2_done:
        vpor	%ymm3, %ymm2, %ymm2
        vptest	%ymm2, %ymm2
        cmovzl	%ecx, %eax
        cmovnzl	%r8d, %eax
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_cmp_avx2,.-mlkem_cmp_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_redistribute_21_rand_avx2
.type	mlkem_redistribute_21_rand_avx2,@function
.align	16
mlkem_redistribute_21_rand_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_redistribute_21_rand_avx2
.p2align	4
_mlkem_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	mlkem_redistribute_21_rand_avx2,.-mlkem_redistribute_21_rand_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_redistribute_17_rand_avx2
.type	mlkem_redistribute_17_rand_avx2,@function
.align	16
mlkem_redistribute_17_rand_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_redistribute_17_rand_avx2
.p2align	4
_mlkem_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	mlkem_redistribute_17_rand_avx2,.-mlkem_redistribute_17_rand_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_redistribute_16_rand_avx2
.type	mlkem_redistribute_16_rand_avx2,@function
.align	16
mlkem_redistribute_16_rand_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_redistribute_16_rand_avx2
.p2align	4
_mlkem_redistribute_16_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
        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)
        vmovdqu	%ymm1, 64(%rdx)
        vmovdqu	%ymm5, 96(%rdx)
        vmovdqu	%ymm2, 64(%rcx)
        vmovdqu	%ymm6, 96(%rcx)
        vmovdqu	%ymm3, 64(%r8)
        vmovdqu	%ymm7, 96(%r8)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_redistribute_16_rand_avx2,.-mlkem_redistribute_16_rand_avx2
#endif /* __APPLE__ */
#ifndef __APPLE__
.text
.globl	mlkem_redistribute_8_rand_avx2
.type	mlkem_redistribute_8_rand_avx2,@function
.align	16
mlkem_redistribute_8_rand_avx2:
#else
.section	__TEXT,__text
.globl	_mlkem_redistribute_8_rand_avx2
.p2align	4
_mlkem_redistribute_8_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)
        vzeroupper
        repz retq
#ifndef __APPLE__
.size	mlkem_redistribute_8_rand_avx2,.-mlkem_redistribute_8_rand_avx2
#endif /* __APPLE__ */
#endif /* HAVE_INTEL_AVX2 */
#endif /* WOLFSSL_HAVE_MLKEM */

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